AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Zeitdifferenz wird nicht beachtet
Thema durchsuchen
Ansicht
Themen-Optionen

Zeitdifferenz wird nicht beachtet

Ein Thema von TheMiller · begonnen am 15. Feb 2006 · letzter Beitrag vom 15. Feb 2006
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Zeitdifferenz wird nicht beachtet

  Alt 15. Feb 2006, 18:12
Datenbank: mysql • Version: 4.1 • Zugriff über: PHP-Script
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 )
Bisheriger Nutzername "DJ-SPM"
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#2

Re: Zeitdifferenz wird nicht beachtet

  Alt 15. Feb 2006, 19:13
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'
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

Re: Zeitdifferenz wird nicht beachtet

  Alt 15. Feb 2006, 21:00
Ich sollte doch aufhören, mit einem Grippekopf zu programmieren - funzt natürlich

Danke
Bisheriger Nutzername "DJ-SPM"
  Mit Zitat antworten Zitat
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Zeitdifferenz wird nicht beachtet

  Alt 15. Feb 2006, 22:18
Zitat von DJ-SPM:
Ich sollte doch aufhören, mit einem Grippekopf zu programmieren...
Na dann: Gute Besserung!
Sebastian M.
Viele Grüße aus Hamburg


Meine Website: www.sebastian-mundt.com
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

Re: Zeitdifferenz wird nicht beachtet

  Alt 15. Feb 2006, 22:20
Danke
Bisheriger Nutzername "DJ-SPM"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 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