. .
pragmaMx Support Forum 09 Februar 2012, 09:32:46 *
Willkommen Gast. Bitte einloggen oder registrieren.


Einloggen mit Benutzername und Passwort
News:
Brauchen Sie Hilfe? Bitte nutzen Sie unsere Suchfunktion bevor Sie Beiträge oder Fragen ins Board schreiben! Viele Fragen wurden bereits gestellt und beantwortet. Danke!
 
Übersicht Hilfe Forenregeln / Boardrules
 
Suche
Seiten: [1]   Nach unten
Drucken
Autor Thema: [Solved] Ich stehe voll auf dem Schlauch, DB-Einträge älter als x Tage löschen !?  (Gelesen 1542 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
pyr0
Beta-Tester
****
Offline Offline

Geschlecht: Männlich
Beiträge: 431

pyr0


WWW
« 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:
Code: [Select]  
$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:
Code: [Select]  
$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
Gespeichert
Webfan
Spezialist
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 532


WWW
« Antworten #1 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';
Code: [Select]  
$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.
Gespeichert

pyr0
Beta-Tester
****
Offline Offline

Geschlecht: Männlich
Beiträge: 431

pyr0


WWW
« Antworten #2 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  rougi
im Moment mach ich das so.
Code: [Select]  
$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  rougi,
es geht aber !

Melde mich dann später nochmal ob es so geklappt hat  thumbup
Gespeichert
Webfan
Spezialist
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 532


WWW
« Antworten #3 am: 09 Februar 2010, 18:24:18 »

Zitat
aber 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);
Gespeichert

pyr0
Beta-Tester
****
Offline Offline

Geschlecht: Männlich
Beiträge: 431

pyr0


WWW
« Antworten #4 am: 09 Februar 2010, 19:01:31 »

So hab es eben getestet und muss sagen jupp es rennt  thumbup

Merci und  drinks
Gespeichert
Seiten: [1]   Nach oben
Drucken
 
Gehe zu:  

Powered by SMF 1.1.16 | SMF © 2011, Simple Machines
design by hENNE, layout based on YAML