Prophet05
Erfahrenes Mitglied
Folgender MySQL-Befehl (in PHP) funktioniert nicht und ich bin mir ziemlich sicher das es an der WHERE-Bedingung liegt:
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
Code:
$sql = "UPDATE `user` SET `online`='0' WHERE ".time()."-`login` > 3600;";
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