Nếu không biết cấu trúc DB của bạn, đó là một phỏng đoán.
if ($time >= $loggedtime)
Bạn đang so sánh một chuỗi như '2012-11-01 10:10:10' với bất kỳ chuỗi nào $time
nằm trong DB của bạn. Đây có vẻ là vấn đề ở đây. Bạn có thể / nên sử dụng dấu thời gian UNIX. Chúng có thể được so sánh dễ dàng.
Nếu $time
là một dấu thời gian UNIX mà bạn có thể làm:
if ($time >= time()-300)
CHỈNH SỬA:
Thay đổi truy vấn của bạn để lấy dấu thời gian UNIX cho online
$query = 'SELECT userid, handle, UNIX_TIMESTAMP(online) as online FROM ^users ORDER BY userid ASC';
EDIT2: Để làm rõ hơn:Trong phiên bản đầu tiên, bạn đã so sánh hai Ngày ở dạng '2012-11-01 10:10:10'
if ('2012-11-01 10:10:10' < '2012-11-02 10:10:10')
Điều này không thể hoạt động trong PHP - nó giống như làm:
if ('apples' < 'bananas')
Bạn phải so sánh các con số. Do đó, tôi đã đề xuất sử dụng dấu thời gian unix có thể dễ dàng so sánh.