Estado en línea sin conexión del usuario - problema de estado sin conexión

En primer lugar esta es una pregunta relacionada dePHP: Estado sin conexión en línea Pero como mi enfoque es un poco diferente y también un problema, pensé que una nueva pregunta sería mejor.

Ahora agregué una columna a la tabla qa_users llamada "en línea" que inserta / actualiza el tiempo de registro y mantengo actualizada sobre la interacción del usuario (no estoy seguro de si es correcto o no)

Ahora está mostrando al usuario en línea tan pronto como inició sesión, pero el problema es que después de cerrar sesión se mantiene el estado de visualización en línea y nunca se desconecta.

Creo que algo está mal con mi código condicional de comparación de tiempo, pero lo que no sé.

Por favor encuentre abajo el código de lo que estoy usando.

$loggedtime = date('Y-m-d h:i:s', time()-300); // 5 minutes

$query = 'SELECT userid, handle, online FROM ^users ORDER BY userid ASC';           
$result = qa_db_query_sub($query);  

while($ids = mysql_fetch_array($result)){

    $online = $ids['online'];
    $userid = qa_get_logged_in_userid();

    if(qa_is_logged_in()){
        $update = 'UPDATE ^users SET online = NOW() WHERE userid = '.$userid.'';

        qa_db_query_sub($update);
    }

    $time = $ids['online'];

    if ($time >= $loggedtime){ // i have tried with $loggedtime > $time too
        echo '<li>'.$ids['handle'].' online</li>';
    } else {
        echo '<li>'.$ids['handle'].' offline</li>';
    }               

}

Respuestas a la pregunta(2)

Su respuesta a la pregunta