WHERE Bedingung funktioniert nicht

Prophet05

Erfahrenes Mitglied
Folgender MySQL-Befehl (in PHP) funktioniert nicht und ich bin mir ziemlich sicher das es an der WHERE-Bedingung liegt:
Code:
$sql = "UPDATE `user` SET `online`='0' WHERE ".time()."-`login` > 3600;";
Also in `login` habe ich den unixzeitstempel des letzten Logins eines Users gespeichert. In `online` steht einfach der Aktuelle status des Users (0=Offline / 1=Online).
Ich möchte mit diesem Update herausfinden ob ein User bereits länger als 1 Stunde on ist. Wenn ja soll er als offline markiert werden weil er dann automatisch ausgelogt wird. Dazu frage ich ob zwischen der Aktuellen Zeit (welche ich mit time() angebe) und dem letzten Login mehr als 3600 sekunden (1 Stunde) vergangen sind.
Ich habe aus dem MySQL-Handbuchheraus gelsesen das MySQL rechene kann und solche vergleiche auch möglich sein sollten. Also dachte ich mit kombinieren wir doch mal beides. Leider funktioniert es nicht... Ich weiß man könnte das ganze auch über einen Umweg in PHP regeln das würde ich auch schaffen aber ich möchte den Server nicht damit überlasten das immer wieder amanfang einer Seite eine While-Schleife durchgelaufen wird die erstmal alle User prüft.
Also kann mir jemand sagen warum das nicht funktioniert oder wie ich es genauso schnell / kurz hinkriege?

Danke im voraus, Prophet05
 
Ist `login` auch ein INT?
Wurde `login` richtig eingetragen?
Ansonsten solltest Du es vielleicht mit Klammern versuchen. Ich weiss nicht, wie MySQL solche Ausdrücke interpretiert.
Vielleicht benötigst Du auch Leerzeichen links undrechts von dem Minus.
Ansonsten sieht das in Ordnung aus und das eben sind ja auch nur Vermutungen.
gibt er denn eine Fehlermeldung oder tut er einfach nichts oder tut er das falsche?

Gruß hpvw
 
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Laufwerk on line 9

Also der Typ stimmt und diese Fehlermeldung siehst du ja. Ich habe es noch malmit Klammern und freizeichen versucht es bleibt aber dabei. Zeile 9 ist der mysql_query() befehl.
 
Dann gib' mal [phpf]mysql_error[/phpf] aus, damit man etwas mehr Informationen hat.

EDIT: War ein bisschen Blödsinn, was ich eben geschrieben habe:
Es scheint keine Verbindung zur Datenbank zu geben.
 
Ja du hast recht. Es stand keine Verbindung ich Idiot habe den Befehl vor dem Verbindungsaufbau ausgeführt.

Danke für deine Hilfe.

MfG Prophet
 

Neue Beiträge

Zurück