PDA

View Full Version : [PHP+SQL]Utenti Online


Psyk0
05-12-2007, 13:35
Ciao a tutti,
ho creato questo script per visualizzare le informazioni di utenti online entro un determinato lasso di tempo.

codice PHP:

//IMPOSTO IL NUMERO DI UTENTI DA CERCARE PER PAGINA
$primo=0;
$per_page= 25;

// IMPOSTO IL DELAY
$delay= 3000;
$sess_online=0;


// FACCIO UNA SELEZIONE UNIVOCA DI TUTTI GLI ID PRESENTI NELLA TABELLA SESSIONI
$query_online=mysql_query("SELECT DISTINCT creation_date, user_id FROM sessioni GROUP BY user_id ORDER BY creation_date DESC LIMIT $primo, $per_page");
while ($cerca=mysql_fetch_array($query_online)){

//SELEZIONO LE INFORMAZIONI CHE MI INTERESSANO DI OGNI UTENTE CHE MI VIENE RESTITUITO DALLA QUERY PRECEDENTE
$queryb=mysql_query("SELECT timestamp, username, avatar, sesso FROM utenti WHERE id=$cerca[user_id] ORDER BY timestamp DESC");
while ($cercab=mysql_fetch_array($queryb)){

// OTTENGO L'ULTIMO TIMESTAMP DELL'UTENTE
$check_sess= $timestamp - $cercab["timestamp"];

// SE L'UTENTE E' ONLINE INCREMENTA IL NUMERO
if ($check_sess <= $delay){
$sess_online++;

//PER OGNI UTENTE ONLINE CREO UN DIV CON LE SUE INFO
echo"<div class='div_avatar2' align='left'>
<a href='messaggi.php?id=$cerca[user_id]'>
<img src='utenti/$cerca[user_id]/mini/$cercab[avatar]' border='0' class='foto' width='60' height='60' align='left'/>
&nbsp;<b><u>$cercab[username]</u></b> </a><br />
<a href='messaggi.php?id=$cerca[user_id]'>&nbsp;<img src='img/mail.png' border='0' alt='Messaggi' /></a>
<a href='profilo.php?id=$cerca[user_id]'>&nbsp;<img src='img/foto.png' border='0' alt='Profilo' /></a><br />
</div>";


}
}
}



Il campo creation_date viene aggiornato ad ogni azione dell'utente sul sito con l'ultimo timestamp.

Il problema è che ho diversi errori, da un numero errato di utenti, a utenti ripetuti due volte, e addirittura non ordinati per creation_date desc, ma alla rinfusa...

avete idee? :doh:

Grazie :)