Uden at kende din DB-struktur er det en slags gæt.
if ($time >= $loggedtime)
Du sammenligner en streng som '2012-11-01 10:10:10' med hvilken som helst $time
er i din DB. Dette ser ud til at være problemet her. Du kunne/bør bruge UNIX-tidsstempler. De kan nemt sammenlignes.
Hvis $time
var et UNIX-tidsstempel, du bare kunne gøre:
if ($time >= time()-300)
EDIT:
Skift din forespørgsel for at få et UNIX-tidsstempel til online
$query = 'SELECT userid, handle, UNIX_TIMESTAMP(online) as online FROM ^users ORDER BY userid ASC';
EDIT2: For at gøre det mere klart:I din første version sammenlignede du to datoer i formen '2012-11-01 10:10:10'
if ('2012-11-01 10:10:10' < '2012-11-02 10:10:10')
Dette kan ikke fungere i PHP - det er ligesom at gøre:
if ('apples' < 'bananas')
Du skal sammenligne tal. Derfor foreslog jeg at bruge unix-tidsstempler, som nemt kan sammenlignes.