Hi Leute!
So, hab jetzt ein extrem verwirrendes Zeugs zussamengeschnippselt und geproggt und hab damit versucht aus einer Tabelle die letzten zwanzig Einträge auszulesen und diese dann zu posten.
mein problem:
Anstatt, dass er von hinten gesehen die letzten Zeilen (letzten 20 ID's!) ausliest und ausgibt.
Gibt er immer nur die zuletzt gespeicherte ID aus...und das unendlich oft! Sieht nicht grad toll au8s...lol
So, habt ihr nun also ein Script parat oder könnt ihr meins hier verbessern?
(ich habs nur asuschnittweise gepostet!)
Ich weiß, dass einiges unnütz is oder so, aber ich hab von PHP kaum Ahnung und hab mir das alles von Foren oder so zusammengeschnipselt.
Könnt ihr hier den HAUPTFEHLER finden, warum er unendlich oft die letzte Zeile (da, wo die ID halt am größten ist!) ausspuckt und nicht die letzten 20 Zeilen?
Kann es vielleicht daran liegen, dass ich keine Schleife drin habe, die abfragt, ob überhaupt schon 20 zeilen in der Tabelle vorhanden sind und es daher zu einem Fehler kommt?
So, hab jetzt ein extrem verwirrendes Zeugs zussamengeschnippselt und geproggt und hab damit versucht aus einer Tabelle die letzten zwanzig Einträge auszulesen und diese dann zu posten.
mein problem:
Anstatt, dass er von hinten gesehen die letzten Zeilen (letzten 20 ID's!) ausliest und ausgibt.
Gibt er immer nur die zuletzt gespeicherte ID aus...und das unendlich oft! Sieht nicht grad toll au8s...lol
So, habt ihr nun also ein Script parat oder könnt ihr meins hier verbessern?
(ich habs nur asuschnittweise gepostet!)
PHP:
<?
for( $i=0;$i=20;$i++) {
$aktuelle_id = $max_id-$i;
@mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen");
@mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank fehlgeschlagen");
$result = mysql_query("SELECT * FROM news WHERE ID $aktuelle_id");
$sql = mysql_query("SELECT MAX(id) AS newid FROM news");
if ($row1 = mysql_fetch_array($sql)) {
do{
$max_id = $row1[newid];
}
while($row1 = mysql_fetch_array($sql));
} else {
}
if ($row = mysql_fetch_array($result)) {
do{
$id = $row[id];
$date = date("d.m.y", $row[date]);
$nick = $row[nick];
$title = $row[title];
$comment = $row[comment];
$comment = enable_url(enable_tags(strip_tags($comment)));
$comment = wordwrap($comment, 10, "\n", 1);
$comment1 = $row[comment1];
$comment1 = enable_url(enable_tags(strip_tags($comment1)));
$comment1 = wordwrap($comment1, 10, "\n", 1);
$comment2 = $row[comment2];
$comment2 = enable_url(enable_tags(strip_tags($comment2)));
$comment2 = wordwrap($comment2, 10, "\n", 1);
replace_text_smiley();
}
while($row = mysql_fetch_array($result));
echo "BLABLABLA"; //Hier wird alles ausgegeben!
}
else {
echo "BLABLABLA was anderes..."; //ich glaube hier kommt
//das hin, das dastehen soll, wenn die tabelle
//noch leer is; war beim ursprünglichen script so (!!!)
}
@mysql_close($servername);
}
?>
Ich weiß, dass einiges unnütz is oder so, aber ich hab von PHP kaum Ahnung und hab mir das alles von Foren oder so zusammengeschnipselt.
Könnt ihr hier den HAUPTFEHLER finden, warum er unendlich oft die letzte Zeile (da, wo die ID halt am größten ist!) ausspuckt und nicht die letzten 20 Zeilen?
Kann es vielleicht daran liegen, dass ich keine Schleife drin habe, die abfragt, ob überhaupt schon 20 zeilen in der Tabelle vorhanden sind und es daher zu einem Fehler kommt?