höchsten Wert ermitteln

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

höchsten Wert ermitteln

Beitrag von Martin Truckenbrodt »

Hallo,
ich habe eine Tabelle mit einigen Datensätzen mit zugehöriger id.
Ich möchte den Wert der höchste ID ermitteln:

Code: Alles auswählen

$sql = "SELECT pic_id FROM $album_table WHERE 1 ORDER BY pic_id DESC LIMIT 0,1";

$result = mysql_query($sql) or die; 
$maxpic_id = mysql_fetch_array($result);
Funzt leider nicht. Wo liegt das Problem?

Danke und Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
SD582
Mitglied
Beiträge: 307
Registriert: 08.07.2005 13:15
Wohnort: Salzburg
Kontaktdaten:

Beitrag von SD582 »

Hi

Ist pic_id ein Textfeld?
Wenn ja, dann wird Textuell sortiert, das heißt, daß 20 vor 3 kommt und 30 vor 4 und 354675865 auch vor 4

Wahrscheinlich bleibt dann nur, das Zeugs in ein Array auszulesen und dabei auf nummerisch umzuwandeln. Dann das array mit geeignetem Algorhytmus nach dem höchsten Wert durchsuchen.

Gruß
Franz
Wer einen Rechtschreibfehler findet, darf ihn ruhig behalten. Ich habe noch genug davon auf Lager.
--- Sendet mir bitte KEINE PMs - Ich bevorzuge richtige email!
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
hier die Details zur pic_id:
pic_id int(11) UNSIGNED Nein auto_increment

Ist also eine Zahl(,oder?).

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
kellanved
Mitglied
Beiträge: 570
Registriert: 05.02.2005 15:15
Wohnort: Berlin

Beitrag von kellanved »

Was spricht gegen

Code: Alles auswählen

"SELECT MAX(pic_id) AS max FROM $album_table" 
?
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
habe jetzt folgendes drinnen:

Code: Alles auswählen

$sql = "SELECT MAX(pic_id) AS max FROM $album_table";

$result = mysql_query($sql) or die; 

echo $result;

$maxpic_id = mysql_fetch_array($result);
//$num_rows = $result[1]; 


$rgpic_id=mt_rand ( 1 , $maxpic_id );

echo $rgpid_id;
Funzt leider nicht. Die Echos sind zu Testzwecken drinnen.

Ergebnis zu sehen unter http://www.killi.org/index2.php
Es sollten eigentlich vier Bilder angezeigt werden.

Ich hier als PHP Programmier Newbie wohl noch ein allgemeines Verständnisproblem.

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
kellanved
Mitglied
Beiträge: 570
Registriert: 05.02.2005 15:15
Wohnort: Berlin

Beitrag von kellanved »

Ok.

Erstens fängt das Zählen des Arrays bei null an. Oder, da schöner zu lesen, "$result['max']".

Zweitens würde ich für den Zweck MySQL die Arbeit machen lassen:

Code: Alles auswählen

$sql = "SELECT * FROM $album_table
          ORDER BY RAND() LIMIT 4";
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
ich lasse mal Deinen Alternativvorschlag aussen vor, weil ich jetzt wissen will wo es hakt. Ich will ja auch was lernen. :D
Ich habe jetzt:

Code: Alles auswählen

$sql = "SELECT MAX(pic_id) AS max FROM $album_table";

$result = mysql_query($sql) or die; 

echo $result['max'];
Müßte das echo jetzt was anzeigen oder fehlt noch was?

Was dabei rauskommen soll: http://smartor.is-root.com/viewtopic.php?t=14939

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
kellanved
Mitglied
Beiträge: 570
Registriert: 05.02.2005 15:15
Wohnort: Berlin

Beitrag von kellanved »

nein; result ist nur eine Ressource. Da musst Du erst das Ergebnis mittels "mysql_fetch_array($result);" auslesen.
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
hilft mir schon weiter.
Jetzt habe ich folgendes:

Code: Alles auswählen

$sql = "SELECT MAX(pic_id) AS max FROM $album_table";
$result = mysql_query($sql) or die; 
$maxpic_id = mysql_fetch_array($result['max']);
echo $maxpic_id;
$rgpic_id=mt_rand ( 1 , $maxpic_id );
//select and print
$sql="SELECT pic_id, pic_title, pic_desc FROM $album_table WHERE pic_id = $rgpic_id"; 
$result = mysql_query($sql) or die;
  while ($row = mysql_fetch_array($result)) 
    print "<TR><TD align='center'>" . $row['pic_title'] . "<BR></TD></TR><TR><TD align='center'><a href='". $phpbb_root_path ."album_page.php?pic_id=" . $row['pic_id'] . "'><img alt='" . $row['pic_desc'] . "' src='". $phpbb_root_path ."album_thumbnail.php?pic_id=" . $row['pic_id'] . "'></a></TD></TR>";


Das echo spuckt immer noch nix aus: http://www.killi.org/index2.php

Ich hoffe, dass ich nicht zu sehr nerve!

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
jetzt flutscht es:

Code: Alles auswählen

<table>
<?php 
//create the random

$sql = "SELECT MAX(pic_id) AS max FROM $album_table";

$result = mysql_query($sql) or die; 

$row = mysql_fetch_array($result);

$rgpic_id=mt_rand ( 1 , $row['max'] );

//select and print

$sql="SELECT pic_id, pic_title, pic_desc 
    FROM $album_table 
    WHERE pic_id = $rgpic_id"; 
  $result = mysql_query($sql) or die; 
  while ($row = mysql_fetch_array($result)) 
  
  
    print "<TR><TD align='center'>" . $row['pic_title'] . "<BR></TD></TR><TR><TD align='center'><a href='". $phpbb_root_path ."album_page.php?pic_id=" . $row['pic_id'] . "'><img alt='" . $row['pic_desc'] . "' src='". $phpbb_root_path ."album_thumbnail.php?pic_id=" . $row['pic_id'] . "'></a></TD></TR>"; 


?> 
</table>
Ich weiß nur leider imme rnoch nicht, was die einzeln Zeilen machen bzw. bewirken.

Gruß Martin
Zuletzt geändert von Martin Truckenbrodt am 08.08.2005 17:46, insgesamt 1-mal geändert.
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Antworten

Zurück zu „Coding & Technik“