• User Attivo

    Come far apparire online solo una volta un utente piuttosto che 4 volte

    Ciao a tutti oggi sono alle prese con questa pagina online.php:

    </SPAN>[php]
    <html>
    <head>
    <title>Persone online</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="javascript">
    function apri(nick_ut)
    {
    window.open("profilo.php?nick=" + nick_ut,nick_ut,"width=500, height=280, left=200");
    }
    </script>
    </head>

    <body bgcolor="#E7E9FA">
    <?
    include("config.php");

    $ar_online=file($file_online);
    $dim=count($ar_online);

    for ($i=0;$i<$dim;$i++)
    {
    $ut_online=chop($ar_online*);
    $utente=explode("|",$ut_online);
    $nick_ut=$utente[0];
    $data=$utente[1];
    $orario=$utente[2];

    $parti_data=explode("/",$data);
    $giorno=$parti_data[0];
    $mese=$parti_data[1];
    $anno=$parti_data[2];

    $parti_orario=explode(":",$orario);
    $ora=$parti_orario[0];
    $minuti=$parti_orario[1];
    $secondi=$parti_orario[2];

    $ts=mktime($ora,$minuti,$secondi,$mese,$giorno,$anno);
    $diff=time()-$ts;
    $min_trascorsi=$diff/60;
    if ($min_trascorsi<$min_online)
    {
    $array_on[]=$nick_ut;
    }
    }
    $ar_unico=array_unique($array_on);
    $dim_unico=count($ar_unico);

    echo "<font face="Verdana" size="1">Online: ";
    for($i=0;$i<count( $array_on);$i++)
    {
    echo $array_on*. ", ";
    }
    ?>

    </body>
    </html>

    [/php]

    praticamente a video mi compaiono i nomi degli utenti che negli ultimi 60 secondi hanno scritto un messaggio, quindi se un utente mi scirve 4 messaggi a video mi compare 4 volte il suo nome come faccio perchè piuttosto che 4 volte venga messo solo una volta il suon nome? spero di essere stato più chiaro possibile, e ringrazio chi mi aiuterà!

    mi è stato consigliato di usare un array multidimensionale ma non so come fare, spero mi aiutiate! 🙂


  • Super User

    Devi usare l'array $ar_unico che contiene già i valori come servono a te


  • User Attivo

    @Gorka said:

    Devi usare l'array $ar_unico che contiene già i valori come servono a te

    ok ma lo uso già non hai visto la pagina e il codice che ho già postato?:?


  • Super User

    Nell'ultimo ciclo
    [php]echo "<font face="Verdana" size="1">Online: ";
    for($i=0;$i<count( $array_on);$i++)
    {
    echo $array_on*. ", ";
    } [/php]usi l'array $array_on
    Secondo me devi sostituirlo con $ar_unico, quindi :

    [php]echo "<font face="Verdana" size="1">Online: ";
    for($i=0;$i<$dim_unico;$i++)
    {
    echo $ar_unico*. ", ";
    } [/php]


  • User Attivo

    @Gorka said:

    Nell'ultimo ciclo
    [php]echo "<font face="Verdana" size="1">Online: ";
    for($i=0;$i<count( $array_on);$i++)
    {
    echo $array_on*. ", ";
    } [/php]usi l'array $array_on
    Secondo me devi sostituirlo con $ar_unico, quindi :

    [php]echo "<font face="Verdana" size="1">Online: ";
    for($i=0;$i<$dim_unico;$i++)
    {
    echo $ar_unico*. ", ";
    } [/php]

    grazie Gorka senza il tuo aiuto non ce l'avrei mai fatta, grazie mille! 😉 :ciauz:


  • User Attivo

    accidenti pensavo funzionasse e invece non è così...

    adesso a video mi appare online solo l'ultimo che nei 60 secondi ha inviato un messaggio 😢


  • User Attivo

    Utilizzia DISTICT nella query SELECT


  • User Attivo

    la mia chat è solo su fogli di testo non usa database, nessun altro che abbia qualche idea? :bho:


  • User Attivo

    proprio nessuno che sappia aiutarmi a risolvere questo enigma? 😢


  • User Attivo

    boh è da tanto che cerco di risovere questa cosa ma ad ora ancora non ci sono riuscito qualcuno mi sa aiutare? per favore magari è una cavolata ma non ci riesco, aiutatemi :mmm: