Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Benutzer online Offline-Status – Problem mit dem Offline-Status

Ohne Ihre DB-Struktur zu kennen, ist es eine Art Vermutung.

if ($time >= $loggedtime)

Sie vergleichen eine Zeichenfolge wie '2012-11-01 10:10:10' mit einer beliebigen $time ist in deiner DB. Dies scheint hier das Problem zu sein. Sie könnten/sollten UNIX-Zeitstempel verwenden. Sie können leicht verglichen werden.

Wenn $time wäre ein UNIX-Zeitstempel, den Sie einfach tun könnten:

if ($time >= time()-300)

BEARBEITEN:

Ändern Sie Ihre Abfrage, um einen UNIX-Zeitstempel für online zu erhalten

$query = 'SELECT userid, handle, UNIX_TIMESTAMP(online) as online FROM ^users ORDER BY userid ASC';

EDIT2: Um es deutlicher zu machen:In Ihrer ersten Version verglichen Sie zwei Datumsangaben in der Form '2012-11-01 10:10:10'

if ('2012-11-01 10:10:10' < '2012-11-02 10:10:10')

Dies kann in PHP nicht funktionieren - es ist wie:

if ('apples' < 'bananas')

Zahlen muss man vergleichen. Daher habe ich vorgeschlagen, Unix-Zeitstempel zu verwenden, die leicht verglichen werden können.