Guestbook self-deleter

g-zus

Erfahrenes Mitglied
So, moin Leude!

Also, ich denke aus dem Titel kann man nicht direkt erschließen was es heißen soll, aber ich erklärs euch mal:

Hab ein Guestbook in PHP mit MySQL geschrieben.
Ich habs so gemacht, dass immer nur die 50 aktuellsten Einträge angezeigt werden.

so...nun, bei meinem letzten Guestbook hatte ich immer das Problem, dass nach einiger zeit die Tabellen schon fast aus allen Nähten geplatzt sind, weshalb ich jetzt einbauen will, dass alle Einträge bis auf die letzten 50 gelöscht werden.

ich glaub zwar, dass es nicht so schwer zu programmieren sein dürfte, hab aber z.Z. ne' Denkblockade und krieg echt nix mehr hin.

Also irgendwas wie das hier:

PHP:
<?

if(max(id)-50>0){

DELETE FROM tabelle WHERE max(id)-50>0;

}else{

//yo..so zur Komplettierung noch ein else rein
//auch wenns überföüssig is

}

?>


Könnte sowas hinhauen?
Ne, nicht ganz, oder?
Denn wenn ich jetzt 51 Einträge habe und dann den ersten lösche, dann bleiben ja die ID's 51 usw erhalten, oder?
Und damit funzt das Script ja leider nicht mehr....

Hat wer von euch ne' Idee?
 
Zuletzt bearbeitet:
Mh, fast richtig würd ich meinen, machs doch so:

PHP:
<?

if(max(id)-50>0){

DELETE * FROM tabelle WHERE id<max(id)-50;

}else{

laber palaber

}

?>

Setzt natürlich auch vorraus das du nicht viele beiträge gelöscht hast also ne paar IDs mittendrin fehlen, aber da dürfte die Gefahr relativ gering sein, und so schlimm wärs wohl auch net :)
 
Hm...
PHP:
<?
$ids = mysql_query("SELECT id FROM tabelle ORDER BY id DESC LIMIT 0, 50");
while (list($id) = mysql_fetch_row($ids))
	$do_not_delete[] = $id;

$where_clause = "WHERE id != '".implode("' AND id != '", $do_not_delete)."'";

mysql_query("DELETE FROM tabelle ".$where_clause);
?>
Ist zwar untested, sollte aber so funktionieren. Geht bestimmt auch irgendwie einfacher mit einer simplen mySQL-Query, wüsste aber jetzt nicht, wie.


reima
 
Zuletzt bearbeitet:
lol

THX ihr beiden....
also, ich probiers mal mit der kürzeren Version von Dominion, da ich die recht leicht verständlich finde... :p

WEnns nicht klappt versuch ich dann mal deins umzusetzen, auch wenns auf den ersten Blick leicht verwirrend aussieht!

Nochmal THX ihr zwei....
 
leider funktionieren beide nicht so ganz...aber aufgrund meines serverwechsels nutze ich jetzt nen' Hoster der keine probleme bei großen datenbanken zu machen scheint!

und von Hand löschen macht auch kein großes Problem!
 
Zurück