Datensatz aus Datenbank nach bestimmter Zeit löschen
Hi
da mir die SuFu leider nicht helfen könnte stellt ich euch meine Frage mal:
Also ich habe in meiner Datenbank Daten (kann man sich ja denken, aber egal) nun möchte ich alle Daten die älter als z.B. 5 Tage (120h) sind löschen. Die Datensätze haben eine Tabelle in denen ihr erstellung´s Datum als Zahl z.B. 1216396873 stehen. Nun wollte ich fragen wie ich es machen muss das das programm weiß was älter als 120h ist und löschen soll (wie ich was aus einer DB lösche weiß ich, kenn mich nur nicht mit dem Datum aus).
Hoffe Ihr habt verstanden was ich meine
Gruß
Michi262
da mir die SuFu leider nicht helfen könnte stellt ich euch meine Frage mal:
Also ich habe in meiner Datenbank Daten (kann man sich ja denken, aber egal) nun möchte ich alle Daten die älter als z.B. 5 Tage (120h) sind löschen. Die Datensätze haben eine Tabelle in denen ihr erstellung´s Datum als Zahl z.B. 1216396873 stehen. Nun wollte ich fragen wie ich es machen muss das das programm weiß was älter als 120h ist und löschen soll (wie ich was aus einer DB lösche weiß ich, kenn mich nur nicht mit dem Datum aus).
Hoffe Ihr habt verstanden was ich meine
Gruß
Michi262
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 94000
Url: https://administrator.de/contentid/94000
Ausgedruckt am: 16.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
Hi Michi,
es wäre interessant zu wissen, welche MySQL Version du einsetzte. Denn somit könntest z.B. bei v5 die Neuerung "Trigger" benutzen. Sprich dieser kann bei verschiedenen Events angeschlossen werden. Somit brauchst du keine Cronjob oder sogar per PHP lösen - alles nur mit Arbeit verbunden. ^^
Diese blöde "Zahl" ist die Zeit in Sekunden die seit dem 01.01.1970 vergangen ist. Sprich du Rechnst kurz die 120 Stunden in Sekunden um und gut ist (5*24*60*60). Danach rechnst du die Zeit auf den Timestamp drauf und schaust ob er kleiner oder größer ist wie der Aktuelle - fertig.
Gruss,
Dani
es wäre interessant zu wissen, welche MySQL Version du einsetzte. Denn somit könntest z.B. bei v5 die Neuerung "Trigger" benutzen. Sprich dieser kann bei verschiedenen Events angeschlossen werden. Somit brauchst du keine Cronjob oder sogar per PHP lösen - alles nur mit Arbeit verbunden. ^^
Diese blöde "Zahl" ist die Zeit in Sekunden die seit dem 01.01.1970 vergangen ist. Sprich du Rechnst kurz die 120 Stunden in Sekunden um und gut ist (5*24*60*60). Danach rechnst du die Zeit auf den Timestamp drauf und schaust ob er kleiner oder größer ist wie der Aktuelle - fertig.
Gruss,
Dani
Nochmal hallo Michi262
Kurz zur Erklärung: Das Format in deiner Tabelle nennt man UNIX_TIMESTAMP. Diese Zahl gibt die Anzahl der abgelaufenen Sekunden seit dem 01.01.1970, 00:00 Uhr an.
hier mal 2 Beispiele für dich:
Gruß,
Markus
Kurz zur Erklärung: Das Format in deiner Tabelle nennt man UNIX_TIMESTAMP. Diese Zahl gibt die Anzahl der abgelaufenen Sekunden seit dem 01.01.1970, 00:00 Uhr an.
hier mal 2 Beispiele für dich:
mysql_query("DELETE FROM tabelle WHERE datum < '".strtotime('-5 days')."'");
mysql_query("DELETE FROM tabelle WHERE datum < '".strtotime('-120 hours')."'");
Gruß,
Markus