WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Datensatz nach 3 Tagen automatisch löschen. » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von Lexia
Tausend Dank, hat alles super geklappt!
von raiserle
soll nicht in spamm ausarten... aber

nach dem prinzip wie der code dort steht ist natürlich absolut inakzeptabel, wegen den haufen selects bzw. update´s

das kann man wirklich nur als cronjob machen wobei ja nen ... Update delete from <tabelle> where datum_als_timestamp <= mein_timestamp

deswegen, überlegt vielleicht nochmal wirklich das script etwas umzubauen... entweder auf den unixtimestamp oder auf die von mysql angebotene date funktion
wobei mysql datefunktion die beste wahl wäre, wenn man mit dem datum arbeiten will.
von languitar
timestamp ist natürlich schöner, aber so sollte es auch gehen, wenn ich das Problem richtig verstanden hab.
von raiserle
sorry languitar, dann habe ich das von dir überlesen, oder eher nicht so verstanden.

aber dann weis Lexia ja immer noch nicht wie er das machen sollte. wobei ja dabei wieder
richtig ist, SELECT
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12:
<?php
$del_tage=30;    // tage nach denen gelöscht werden soll
$datum_heute=mktime(0,0,0,date('n',time()),date('j',time()),date('Y',time()));
$result=mysql_query("SELECT datum,id FROM <tabelle>Order BY id");
while($row=mysql_fetch_assoc($result)){
    $datum_sql=explode(".",$row['datum']);
    $datum_sql=mktime(0,0,0,$datum_sql[1],$datum_sql[0],$datum_sql[2]);    // datumsformat 11.09.2006
    if($datum_sql<=($datum_heute-(86400*$del_tage))){
        mysql_query("DELETE FROM <tabelle> WHERE id='".$row['id']."'");
    }
}
?>


so in etwa sollte es aussehn, oder meintest du es noch etwas anders

wobei ich für das einmalige wäre, eine neue spalte in die sql wo der timestamp drin steht.
und dann einmal nur nen script drüber laufen lassen, der aus dem vorhandenen datums zeitformat nen timestamp setzt.
von languitar
Du kannst doch auch problemlos immer per PHP das Datumsformat da temporär für die Berechnung in eine timestamp umwandeln. Wie ich halt schon sagte. Nicht so schön, aber damit kann man dann rechnen und es funktioniert.

Nach oben