• User

    Attualmente ci sono online???

    Salve ragazzi,
    ho un problema che per voi esperti sarà sicuramente roba da nulla!!
    Vorrei creare uno script che mi dica in un determinato istante chi è collegato al mio forum, tipo quello che si vede nei forum phpbb; "Attualmente ci sono online: Tizio,caio e semprogno.........
    In pratica uno scritp che prenda questi dati dal mio db!!
    Io ho creato la seguente select:
    <?
    $queryutenti= "SELECT $username from utenti WHERE 1=1";
    $risultato= mysql_query($queryutenti);
    echo ("Attualmente ci sono online:$risultato");
    ?>
    Purtroppo nn funziona!!!In pratica a me servirebbe che mi stampasse a video la $username!!
    Vi ringrazio anticipatamente!!!
    Ciao cia


  • User Attivo

    Dando per scontato che la query che hai scritto sia corretta:

    <? 
    $queryutenti= "SELECT username from utenti WHERE 1=1"; 
    $risultato= mysql_query&#40;$queryutenti&#41;; 
    echo &#40;"**Attualmente ci sono online:**"&#41;; 
    while &#40;$row = mysql_fetch_array&#40;$risultato&#41; &#41;
      echo $row&#91;'username'&#93; . ", "; 
    ?> 
    

  • User

    Ciao, innanzittutto ti volevo ringraziare per la tua risposta e ti volevo dire che funziona!!
    Avrei bisogno di qlc chiarimento di come sei arrivata a quella conclusione ma immagino che questo è il luogo meno adatto e tralascio tutto ciò!!
    Un piccolo appunto ti volevo fare:
    in pratica al momento lui mi prende tutti gli utenti del db mentre io vorrei che lui mi stampi solo gli utenti collegati in quel momento!!
    Spero sia possibile farlo e grazie!!!
    Ciao ciao


  • User Attivo

    La risposta arriva direttamente dal [url=http://it.php.net/manual/it/ref.mysql.php]manuale php

    Per quanto riguarda gli utenti connessi dipende da come é fatta la struttura della tabella utenti.
    Adesso nella query c'é scritto WHERE 1=1 che vuol dire "tutti". Dovrai mettere qualcosa tipo **WHERE utente_in_linea = '1' **ma questo lo puoi sapere solo tu in base ai campi della struttura.


  • User

    Allora... Crea una nuovo campo nella tabella utenti user_online,
    Quando si logga poni a 1 quel campo e quando si slogga a 0.

    Poi fai una query del tipo

    SELECT count&#40;*&#41; as totale_utenti_inlinea FROM tabella_utenti WHERE user_online=1
    

    Ricordati comunque di gestire il login e il logout (non solo nel logout, ma di determinare anche un tempo massimo di permanenza sul sito e scaduto quello modificare automaticamente il campo user_online)

    Questa è la procedura terra terra... 😄


  • User

    Allora... Crea una nuovo campo nella tabella utenti user_online,
    Quando si logga poni a 1 quel campo e quando si slogga a 0.

    Poi fai una query del tipo

    SELECT count&#40;*&#41; as totale_utenti_inlinea FROM tabella_utenti WHERE user_online=1
    

    Ricordati comunque di gestire il login e il logout (non solo nel logout, ma di determinare anche un tempo massimo di permanenza sul sito e scaduto quello modificare automaticamente il campo user_online)

    Questa è la procedura terra terra... 😄


  • User

    Grazie chalda, questo che mi hai detto di fare, l'ho fatto e funziona tutto!!!
    In pratica a me ora compare:
    Attualmente ci sono online, 8 utenti, ed elenca i nomi degli utenti, tizio, caio e semprogno!!
    L'unico problema che forse dovrei trovare il modo per dirgli che gli utenti dovevano essere collegati a una specifica pagina!! Io al momento nella tabella utenti ho la riga "online" tipologia "enum(si,no)", null, predefinito = no!!!
    Questa riga mi dice se l'utente "tizio" è online si o no, ma nn se è collegato in quell'istante in una determinata pagina!!!
    Spero di essere stato chiaro e di aver reso l'idea del problema!!!


  • User

    Prego! 🙂
    Beh, allora metti qualcosa che indica la specifica pagina in user_online, lasciando sempre 0 come offline.
    Per esempio potresti mettere il link della pagina, il nome del file, l'id di qualche cosa, ecc.
    Poi ti conviene mettere (se gia non l'hai) un campo tempo_sessione, aggiornarlo ad ogni pagina e fare un controllo anche li (tipo: se è 10 minuti che è fermo sulla stessa pagina, consideralo offline)