Noxy Geschrieben 18. August 2003 Teilen Geschrieben 18. August 2003 Hi Ich hab einen Webserver mit PHP / MySQL laufen und hab jetzt das Problem, dass ich Datensätze in bestimmten Tabelle 1. Jeden Tag, die vom Vortag oder 2. ca 5 Tage, nachdem sie eingetragen wurden löschen will. Kann ich das in Linux mit einem Script machen, brauch ich PHP dafür oder was ganz anderes? Vielleicht ist es ja ganz leicht, aber ich komm momentan nicht drauf. Danke für jede Hilfe. Noxy Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kinnley Geschrieben 18. August 2003 Teilen Geschrieben 18. August 2003 Gibt mehrere Möglichkeiten sowas zu realisieren. 1) erstelle ein php skript das die Datensätze löscht. Dieses Skript rufst du per Cron-Job auf (lynx wget...) 2) einbau der löschroutine in das bestehende programm wenn neue Datensätze hinzugefügt werden, wird vorher geschaut, ob es noch "alte" Datensätze gibt, die gelöscht werden können. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 18. August 2003 Teilen Geschrieben 18. August 2003 jo ich nehme mich meinem Vorredner an. ergänzung: ganz einfach vom aktuellen datum + uhrzeit den timestamp bei den datensätzen hinten mit reingeben und daran dann erkennen welche die "alten" datensätze sind bzw welche noch "aktuell" sind. Gruß kills Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Noxy Geschrieben 18. August 2003 Autor Teilen Geschrieben 18. August 2003 Hmm, also 1 würde denk ich gehen, aber bei 2 ist das Problem, dass wenn die Seite pro Tag 20 mal aufgerufen wird, 20 mal der Löschbefehl abgesetzt wird, obwohl das eigentlich nicht nötig wäre... Was würde denn das ungefähr mit timestamps aussehen, wenn ich Einträge vom letzten tag oder von der letzten woche löschen will? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EvilNick Geschrieben 18. August 2003 Teilen Geschrieben 18. August 2003 Wenn du den Timestamp in der DB bei den Datensätzen hast, und du willst z.B. alle Beiträge der letzten 24h löschen: $ab_tag = time() - 86400; // Aktuelle Zeit minus 24 Stunden $ab_woche = time() - 604800; // Aktuelle Zeit minus 7 Tage (7*24) $sql_tag = "DELETE FROM tabelle1 WHERE zeit <= $ab_tag"; $sql_woche = "DELETE FROM tabelle1 WHERE zeit <= $ab_woche"; [/PHP] Da der Timestamp ja die Sekunden seit 19XX (k.A. welches Jahr genau) zählt, mußt du also immer mit Sekunden arbeiten. 1 Minute = 60 Sekunden 1 Stunde = 60 Sekunden * 60 Minuten = 3600 1 Tag = 3600 Sekunden = 24 Stunden = 86400 1 Woche = 86400 Sekunden * 7 Tage = 604800 usw. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Noxy Geschrieben 18. August 2003 Autor Teilen Geschrieben 18. August 2003 Ich wollte das ganze grad einbauen, doch ich hab noch ein Problem: Kann es sein, dass der Mysql timestamp und der PHP time() timestamp unterschiedlich sind? Der in Mysql hat 14 Zeichen, der in PHP 10 Zeichen oder hab ich was falsch gemacht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EvilNick Geschrieben 18. August 2003 Teilen Geschrieben 18. August 2003 Mmm, da bin ich nu überfragt, wenn ich einen Timestamp mit in die DB schreibe, lasse ich mir den in PHP generieren und schreibe den dann in ein Feld. Schau doch mal bei Google Groups nach, ansonsten schaue ich heute abend nochmal in meinen Unterlagen zu Hause. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.