Без да знаете структурата на вашата БД, това е нещо като предположение.
if ($time >= $loggedtime)
Сравнявате низ като '2012-11-01 10:10:10' с каквото и да е $time
е във вашата БД. Изглежда, че това е проблемът тук. Можете/трябва да използвате UNIX времеви печати. Те могат лесно да се сравняват.
Ако $time
бяха UNIX времеви печат, който можете просто да направите:
if ($time >= time()-300)
РЕДАКТИРАНЕ:
Променете заявката си, за да получите времеви печат на UNIX за online
$query = 'SELECT userid, handle, UNIX_TIMESTAMP(online) as online FROM ^users ORDER BY userid ASC';
РЕДАКТИРАНЕ 2: За да стане по-ясно:В първата си версия сравнявахте две дати под формата „2012-11-01 10:10:10“
if ('2012-11-01 10:10:10' < '2012-11-02 10:10:10')
Това не може да работи в PHP - все едно правиш:
if ('apples' < 'bananas')
Трябва да сравнявате числата. Затова предложих да използвате времеви марки в unix, които могат лесно да се сравняват.