Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Zeitdifferenz wird nicht beachtet (https://www.delphipraxis.net/63231-zeitdifferenz-wird-nicht-beachtet.html)

TheMiller 15. Feb 2006 18:12

Datenbank: mysql • Version: 4.1 • Zugriff über: PHP-Script

Zeitdifferenz wird nicht beachtet
 
Hallo,

ich habe das Problem, dass ich hintereinander zwei Funktionen aufrufe, die sich gegenseitig löschen - denke ich...

einmal diese:

Code:
mysql_query("UPDATE online SET activity = curtime() WHERE uid = '".$_SESSION['uid']."';");
Dieser Code setzt die aktuelle Zeit des Users mit der ID "x" in das Feld "activity". Gleich darunter, lösche ich alle User, die eine Inaktivität von 20 Minuten haben:

Code:
$sql = "DELETE FROM online WHERE timediff(activity, curtime()) > '-00:20:00';";
Beide Statements führe ich mit mysql_query($sql); aus. Schau ich in die DB, ist kein Eintrag drin. Kommentiere ich das "Lösch-Statement" aus und frage erneut die DB, funzt es.

Führe ich dann das gleiche Statement zum Löschen per Konsole oder PHP-Seite aus, funzt es auch.. Kann es sein, dass die Rechner so schnell sind, dass sie bei aufeinanderfolgender Ausführung als Differenz die Uhrzeit "00:00:00" - "aktuelle Zeit" rechnen und als Ergebnis "-aktuelle Zeit" bekommen? Eigentlich werden doch die Statements nacheinander ausgeführt, oder?

Danke im Voraus für die Hilfe - fummele schon seit 4 Uhr dran rum (nicht an der Freundin, am Script ;-) )

Basilikum 15. Feb 2006 19:13

Re: Zeitdifferenz wird nicht beachtet
 
Zitat:

timediff(activity, curtime()) > '-00:20:00'
könnte man ja folgendermassen umschreiben:
Zitat:

activity - curtime() > '-00:20:00'
curtime() ist immer grösser als activity, sprich activity - curtime() ist immer kleiner 0, aber du möchtest ja die Records löschen, die MEHR als 20 Min Differenz aufweisen =>
Zitat:

timediff(activity, curtime()) < '-00:20:00'
oder intuitiver:
Zitat:

timediff(curtime(), activity) > '00:20:00'

TheMiller 15. Feb 2006 21:00

Re: Zeitdifferenz wird nicht beachtet
 
Ich sollte doch aufhören, mit einem Grippekopf zu programmieren - funzt natürlich :oops:

Danke

CG2003 15. Feb 2006 22:18

Re: Zeitdifferenz wird nicht beachtet
 
Zitat:

Zitat von DJ-SPM
Ich sollte doch aufhören, mit einem Grippekopf zu programmieren...

Na dann: Gute Besserung! :wink:

TheMiller 15. Feb 2006 22:20

Re: Zeitdifferenz wird nicht beachtet
 
Danke :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz