Bez znajomości struktury bazy danych to rodzaj zgadywania.
if ($time >= $loggedtime)
Porównujesz ciąg taki jak „2012-11-01 10:10:10” z czymkolwiek $time
jest w twoim DB. Wydaje się, że jest to problem. Możesz/powinnaś używać znaczników czasu UNIX. Można je łatwo porównać.
Jeśli $time
były znacznikiem czasu UNIX, który można po prostu zrobić:
if ($time >= time()-300)
EDYTUJ:
Zmień zapytanie, aby uzyskać sygnaturę czasową UNIX dla online
$query = 'SELECT userid, handle, UNIX_TIMESTAMP(online) as online FROM ^users ORDER BY userid ASC';
EDIT2: Aby było to jaśniejsze:W swojej pierwszej wersji porównywałeś dwie daty w postaci „2012-11-01 10:10:10”
if ('2012-11-01 10:10:10' < '2012-11-02 10:10:10')
To nie działa w PHP - to jak robienie:
if ('apples' < 'bananas')
Musisz porównać liczby. Dlatego zasugerowałem użycie uniksowych znaczników czasu, które można łatwo porównać.