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);
}