Eintrag dessen Datetime feld älter als ein tag ist löschen...
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also, wenn ich das richtig verstanden habe, dann hast du eine MySQL-Tabelle mit einem Feld (nennen wir es: 'datumsfeld') des Typs 'DATE'. Hier wird das Datum in der Form
YYYY-MM-DD
abgespeichert.
Wenn das so stimmt, dann könntest du es so lösen:
$sql = 'DELETE FROM tabellenname WHERE datumsfeld != \''.date('Y-m-d').'\'';
(löscht Einträge, die nicht von heute sind)
oder
$sql = 'DELETE FROM tabellenname WHERE datumsfeld != \''.date('Y-m-d').'\' AND datumsfeld != \''.date('Y-m-d',(time()-86400)).'\'';
(löscht Einträge, die nicht von heute und nicht von gestern sind)
mysql_query($sql)
Ich habs nicht ausprobiert, aber prinzipiell funktioniert es so.
Beitrag geaendert: 14.1.2007 13:41:52 von sandrock-jonas -
moinsen...
aus diesem grund erstelle ich meine datumsformate grundsätzlich mit dem timestamp... damit finde ich, lässt sich besser arbeiten.
dabei wird halt anstatt dem datum, nur ein wert von zahlen gespeichert (das is die anzahl der sekunden glaube seit 01.01.1970) damit würde deine db-lösch-abfrage dann so aussehen...
// damit wird alles gelöscht, was älter als 24 stunden (86400 sekunden) ist $sql = 'DELETE FROM tabellenname WHERE datumsfeld <=time()-86400';
-
dabei wird halt anstatt dem datum, nur ein wert von zahlen gespeichert (das is die anzahl der sekunden glaube seit 01.01.1970) damit würde deine db-lösch-abfrage dann so aussehen...
// damit wird alles gelöscht, was älter als 24 stunden (86400 sekunden) ist $sql = 'DELETE FROM tabellenname WHERE datumsfeld <=time()-86400';
sollte wohl eher wie folgt heißen:
$sql = 'DELETE FROM tabellenname WHERE datumsfeld <='.(time()-86400);
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage