Tanpa mengetahui struktur DB Anda, ini seperti tebakan.
if ($time >= $loggedtime)
Anda membandingkan string seperti '2012-11-01 10:10:10' dengan $time
whatever apa pun ada di DB Anda. Ini tampaknya menjadi masalah di sini. Anda dapat/harus menggunakan cap waktu UNIX. Mereka dapat dibandingkan dengan mudah.
Jika $time
adalah stempel waktu UNIX yang bisa Anda lakukan:
if ($time >= time()-300)
EDIT:
Ubah kueri Anda untuk mendapatkan stempel waktu UNIX untuk online
$query = 'SELECT userid, handle, UNIX_TIMESTAMP(online) as online FROM ^users ORDER BY userid ASC';
EDIT2: Untuk membuatnya lebih jelas:Dalam versi pertama Anda, Anda membandingkan dua Tanggal dalam bentuk '2012-11-01 10:10:10'
if ('2012-11-01 10:10:10' < '2012-11-02 10:10:10')
Ini tidak dapat bekerja di PHP - ini seperti melakukan:
if ('apples' < 'bananas')
Anda harus membandingkan angka. Oleh karena itu saya menyarankan untuk menggunakan cap waktu unix yang dapat dengan mudah dibandingkan.