Webstatt.org - Community seit 2006 - 2012 (2024?)

timestamp operationen

Avatar user-279
08.08.2006 07:21

hallo.

bei meiner "wer ist online" tabelle möchte ich bei jedem request alle einträge löschen die älter als 10min sind. in der db habe ich ein timestamp. kann ich das direkt mit sql machen?

$delOffline = "DELETE FROM
`tbl_online`
WHERE
`time` < NOW()-10.00";
mysql_query($delOffline);


das klappt leider nicht ganz.. gibt es da was?

und wenn ich schon dabei bin zwinkern - hier ist meine idee hinter der funktion:
ich habe einfach eine tabelle mit user_nr und timestamp, bei jedem request auf der seite prüft es ob man eingeloggt ist, wenn ja prüft es ob es schon einen eintrag hat von dem user, wenn nicht macht es einen. dann löscht es eben alle einträge die älter als 10min sind.

macht das sinn? bzw. gibt es eine bessere variante oder so?

danke! so long

user-228
08.08.2006 07:42

schau mal im mysql-manual nach DATE_SUB()

gruß, user-228.

Avatar user-279
08.08.2006 07:47

scheint zu funktionieren danke.

Avatar user-279
08.08.2006 13:37

ähm..irgendwie stimmt da was noch nicht..hier ist mein code:

# Einträge die älter als 10min sind löschen (=Offline)
$delOffline = "DELETE FROM `tbl_online` WHERE `time` < DATE_SUB(NOW(), INTERVAL 10 MINUTES)";
mysql_query($delOffline);


ist das falsch so?

user-329
08.08.2006 13:50

muss da net nen minus anstatt nen komma hin?
$delOffline = "DELETE FROM `tbl_online` WHERE `time` <= DATE_SUB(NOW() - INTERVAL 10 MINUTES)";

Avatar user-255
08.08.2006 14:54

Jinonidi, nö. Das Komma trennt die Parameter der Funktion date_sub().

phore, was sagt mysql_error() ?

PS: Timestamps sind doof -- DateTime rulz! zwinkern

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-279
09.08.2006 05:56

/edit. funzt! der fehler war dass man MINUTE schreibt und nicht MINUTES lächeln