MySql-Eintrag nach 2 Minuten löschen

Bene001

Grünschnabel
Ich suche einen MySql-Befehl der alle Datenfelder einer Datenbaktabelle löscht, die in den letzten 2 Minuten nicht aktualisiert wurde.

Ich brauche es für die Datenbanktabelle die die User, die online sind speichert.

Name des Datenfeldes: "lastCallTime"

So weit bin ich schon:
PHP:
$sql_befehl = "DELETE FROM logedin WHERE

Danke im Vorraus für Hilfe!
 
Im prinzip musst Du nen timestamp mit in der Db speicher, dann eine php schreiben mit
PHP:
If ($timestampe.....){
$sql_befehl = "DELETE FROM logedin WHERE..
}
und diese php datei peer cronejob alle X sekunden oder minuten ausführen

mfg Spikaner
 
Hallo!

Ich bin mir nicht ganz sicher, aber ich meine schon mal gesehen zu haben dass man auch mit Vergleichsoperatoren arbeiten kann.
Dann müsste es eigentlich so aussehen:
PHP:
$sql_befehl = "DELETE FROM `logedin` WHERE `lastCallTime`<=time()-120
In der Spalte muss natürlich ein Timestamp gespeichert sein.

Gruss Dr Dau
 
irgendwie funktionierts nicht...
MySQL gibt zwar keinen Fehler aus, aber Einträge, die in den letzten 2 Minuten nicht aktualisiert wurden, werden nicht gelöscht.
Das Datenfeld "lastCallTime" ist natürlich ein Timestamp-Feld und die Zeit wird auch gespeichert...
 
Dann kehr den Vergleich um:
Code:
DELETE FROM `logedin` WHERE `lastCallTime` > CURRENT_TIMESTAMP-120
 
Mein erster Vorschlag müsste eigentlich schon der richtige sein. Denn dieser löscht alle Datensätze, bei denen der „lastCallTime“-Wert kleiner als oder gleich dem aktuellen Zeitpunkt minus 120 Sekunden ist. Das heißt wenn „lastCallTime“ den Zeitpunkt der letzten Aktualisierung darstellt, werden diejenigen Datensätze gelöscht, bei denen die letzte Aktualisierung länger als 120 Sekunden her ist, also innerhalb der letzten zwei Minuten nicht aktualisiert wurde.
 
Zurück