Ich schreibe gerade ein Code-Snippet, das durch die Datenbank schaut und sieht, ob irgendwelche Admins gerade online sind und sie auf der Seite als online anzeigen.Mysql Subtrahiere 5 Minuten von einem Datumswert
Jedes Mal, wenn ein Benutzer auf einer Seite auf meiner Site blättert (wenn er eingeloggt ist), wird die aktuelle Uhrzeit abgerufen und eine Spalte namens lastseen aktualisiert.
Ich habe eine Rolle Spalte, die einen Benutzer von einem Admin markiert und was ich tun soll Abfrage der Datenbank für alle Administratoren und überprüfen Sie die zuletzt gesehene Spalte und wenn diese Zeit ist innerhalb von 5 Minuten von der aktuellen Zeit dann ausgegeben sie zu einer Reihe, die ich dann später aufnehmen und formatieren kann.
Dies ist, was ich derzeit versuchte, aber nichts kam zurück.
SELECT username, role, lastseen FROM database.accounts WHERE lastseen >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND role='admin'
Mir Speicherung lastseen als Datum ('Y-M-D-H-I-S') von PHP so wie es diese 2017-02-18 16:07:42
in der Datenbank sucht.
Sure 'INSERT INTO' accounts' ('id',' username', 'password',' role', 'email',' regip', 'experience',' level', 'rank',' lastip', 'deleted',' gebannt', ' regdate', 'lastlogindate',' emailenabled', 'lastseen',' reghash', 'active',' hp') VALUES ('0', 'Testuser', '$ 6 $ Runden = 10000 $ wmknwubJ0IfllHl5 $ Vd25WbsNkxWzgz154i3tE8Z8uu JQuSHdCGIfIgDfvRTfOobpcPJ0G5kaW2OYgd29AtBGm9GLksyaQOklUIr92. ',' Benutzer ',' [email protected] ', '72 .0.129.61', '250', '0', '0', '72 .0.129.61 ',' 0 ',' 0 ',' 2017 -02-15 06:35:37 ',' 2017-02-16 07:26:46 ',' 1 ',' 2017-02-16 02:27:13 ',' ',' 1 ',' 2 ') ' möglicherweise zu viel XD –
Stellen Sie sicher, dass die Zeitzone für PHP und MySQL identisch sind. Nur um sicherzustellen, versuchen Sie, die 'lastseen' für ein Administrator-Konto bis Jahr 2018 zu setzen. – zed
Das hat tatsächlich funktioniert, Überprüfung der MYSQL und PHP Zeitzonen jetzt –