Seite 1 von 2
höchsten Wert ermitteln
Verfasst: 08.08.2005 14:10
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
Verfasst: 08.08.2005 14:16
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
Verfasst: 08.08.2005 14:23
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
Verfasst: 08.08.2005 14:40
von kellanved
Verfasst: 08.08.2005 14:54
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
Verfasst: 08.08.2005 15:07
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";
Verfasst: 08.08.2005 16:20
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.
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
Verfasst: 08.08.2005 16:32
von kellanved
nein; result ist nur eine Ressource. Da musst Du erst das Ergebnis mittels "mysql_fetch_array($result);" auslesen.
Verfasst: 08.08.2005 16:43
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
Verfasst: 08.08.2005 17:20
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