Sans connaître la structure de votre base de données, c'est une sorte de supposition.
if ($time >= $loggedtime)
Vous comparez une chaîne comme '2012-11-01 10:10:10' avec n'importe quel $time
est dans votre BD. Cela semble être le problème ici. Vous pourriez/devriez utiliser des horodatages UNIX. Ils peuvent être comparés facilement.
Si $time
étaient un horodatage UNIX que vous pourriez simplement faire :
if ($time >= time()-300)
MODIF :
Modifiez votre requête pour obtenir un horodatage UNIX pour online
$query = 'SELECT userid, handle, UNIX_TIMESTAMP(online) as online FROM ^users ORDER BY userid ASC';
EDIT2 : Pour que ce soit plus clair :Dans votre première version vous compariez deux Dates sous la forme '2012-11-01 10:10:10'
if ('2012-11-01 10:10:10' < '2012-11-02 10:10:10')
Cela ne peut pas fonctionner en PHP - c'est comme faire :
if ('apples' < 'bananas')
Il faut comparer les chiffres. Par conséquent, j'ai suggéré d'utiliser des horodatages Unix qui peuvent être facilement comparés.