Aggiorno solo quella dell'utente che aggiorna la pagina, non di tutti gli utenti, quindi per logica chi non aggiorna piu la pagina non avrà il data refresh settato a now() e quindi perte questo codice. Comunque ti posto la funzione completa così ti è piu di aiuto.
Codice PHP:
// Aggiunta degli utenti online [ de-pages/central.php ]
function add_online($id) {
        
$mysql "SELECT * FROM users WHERE id = $id";
        
$result mysql_query($mysql) or die("Non vi è alcun personaggio con quell' ID");
        
$r mysql_fetch_array($result);
        
$username $r["username"];
        
$stato $r["stato"];
        
        
$mysql "SELECT id FROM online WHERE id = $id";
        
$result mysql_query($mysql) or die("Non vi è alcun personaggio con quell'ID nella lista dei presenti!");
        
$r mysql_fetch_array($result);
        
        
// Inserisco nella lista online il personaggio.
        
if (!$r) { // Se non c'è, effettuo un inserimento.
        
$mysql "INSERT INTO online (id, username, stato, data_login) VALUES ($id, '$username', $stato, NOW())";
        
$eseguo mysql_query($mysql) or die("Fallimento dell'inserimento nella lista Online!");
        } else { 
// Se è già presente, aggiorno i dati.
        
$mysql "UPDATE online SET data_refresh = NOW() WHERE id = $id";
        
$eseguo mysql_query($mysql) or die("Fallimento dell'aggiornamento nella lista Online!");
        }
        
        
$mysql="UPDATE online SET data_logout = NOW() WHERE (DATE_ADD(data_refresh, INTERVAL 1 MINUTE) < NOW()";
        
mysql_query($mysql);