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.