alle außer neueste 10 löschen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
-
ich möchte alle außer die neuesten 10 löschen:
abfragen kann ich:
SELECT myans FROM abcdef ORDER BY timestamp DESC
timstamp=UNIX-Timestamp
wie kann ich jetzt alle außer die löschen?
mfg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
<?php ## die 10 neueseten selektieren $result = mysql_query(\"SELECT * FROM abcdef ORDER BY timestamp DESC LIMIT 0,10;\"); ## $timestamp den kleinsten der 10 timestamps zuweisen while($row = mysql_fetch_array($result)) { $timestamp = $row[\'timestamp\']; } mysql_query(\"DELETE FROM abcdef where timestamp < $timestamp;\"); ?>
-
Einfacher ist doch so...
$sql = \"SELECT count(*) AS numrec FROM abcdef\"; $result = mysql_query($sql); $row = mysql_fetch_object($result); $numrec = $row->numrec; if ($numrec > 10) { $sql = \"DELETE FROM abcdef ORDER BY timestamp LIMIT \".($numrec - 10); mysql_query($sql); }
Prüfen, ob bereits mehr als 10 Datensätze und dann ggfs. den letzten löschen
Beitrag geändert: 9.6.2008 0:38:13 von staymyfriend -
<?php $sql = \"DELETE FROM abcdef ORDER BY timestamp LIMIT \".($numrec - 10); ?>
Jo so gehts auch, aber fehlt da nicht das ASC?
Also ... ORDER BY timestamp ASC LIMIT ... -
<?php $sql = \"DELETE FROM abcdef ORDER BY timestamp LIMIT \".($numrec - 10); ?>
Jo so gehts auch, aber fehlt da nicht das ASC?
Also ... ORDER BY timestamp ASC LIMIT ...
Normal wird aufsteigend sortiert, aber um sicher zu gehen, kann man das ergänzen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage