pragmaMx Support Forum

alles für Webmaster => PhP & mySQL => Thema gestartet von: pyr0 am 09 Februar 2010, 10:43:37

Titel: [Solved] Ich stehe voll auf dem Schlauch, DB-Einträge älter als x Tage löschen !?
Beitrag von: pyr0 am 09 Februar 2010, 10:43:37
Salü an alle,
im Moment hängt es bei mir voll:

Zur Situation, in der DB-Tabelle habe ich folgenden Sachen drin: msg_id,msg_project_id,msg_date, msg_user, msg_user_id,msg
ja und in msg_date steht der Unixtimestamp drin und zwar so:
$timestamp = time();

Soweit auch kein Probleme anzeigen, bearbeiten  und einzelln löschen alles super nur möchte ich jetzt das vor dem Aufruf bzw der Anzeige einfach alle einträge die älter x Tage sind löschen. Und genau da hängt es gerade bei mir, hier mal mein Versuch:

$time_wann = '3600';
echo "--$time_wann--"; # zur kontrolle und zum testen
sql_query("DELETE FROM " . $prefix . "_project_board where msg_date < '$time_wann'");

und es kommt noch nicht einmal zur Fehlermeldung

Aber das geht so nicht  :gruebel:

Bitte um Eure Hilfe hiermit  :smile:

Merci
Titel: Re: Ich stehe voll auf dem Schlauch, DB-Einträge älter als x Tage löschen !?
Beitrag von: Webfan am 09 Februar 2010, 12:57:57
Möchtest Du alle Einträge löschen die älter als 3600 Sekunden sind?
Dann meinst Du sicher statt $time_wann = '3600';
$time_wann =  time() - 3600;
So wie Du es geschrieben hast werden alle Einträge gelöscht die älter als 3600 Sekunden nach Starten der Unixepoche sind, also 1970, das wird wohl bei Dir keiner sein, somit wird nichts gelöscht es erfolgt aber keine Fehlermeldung.
Titel: Re: Ich stehe voll auf dem Schlauch, DB-Einträge älter als x Tage löschen !?
Beitrag von: pyr0 am 09 Februar 2010, 17:12:24
Erstmal Danke,
werd das heute noch testen,denn ich bin gerade im Zug  :puzzled:

und ja ich will Einträge löschen welche zB älter als 30 Tage sind  :red:
im Moment mach ich das so.
$del_date_sec = '86400';
$del_date_auto_in_day ='30'; # auf 30 Tage festgelegt
$del_date = $del_date_sec * $del_date_auto_in_day;
$stamp = time();

$stamp_new= $stamp - $del_date;
$resulta = sql_query("SELECT msg_id,msg_date  FROM " . $prefix . "_project_board ");
while(list($msg_id,$msg_date) =sql_fetch_row($resulta)){
if($msg_date <= $stamp_new){
sql_query("DELETE FROM " . $prefix . "_project_board where msg_id='$msg_id'");
}

}


aber das ist nicht unbedingt die schnellste und sauberste Lösung und vorallem unnötige Datenbankabfragen  :red:,
es geht aber !

Melde mich dann später nochmal ob es so geklappt hat  :thumbup:
Titel: Re: Ich stehe voll auf dem Schlauch, DB-Einträge älter als x Tage löschen !?
Beitrag von: Webfan am 09 Februar 2010, 18:24:18
Zitataber das ist nicht unbedingt die schnellste und sauberste Lösung und vorallem unnötige Datenbankabfragen
Teste doch mal mal
sql_query("DELETE FROM " . $prefix . "_project_board where msg_date <".$stamp_new);
Titel: Re: Ich stehe voll auf dem Schlauch, DB-Einträge älter als x Tage löschen !?
Beitrag von: pyr0 am 09 Februar 2010, 19:01:31
So hab es eben getestet und muss sagen jupp es rennt  :thumbup:

Merci und  :drinks: