• User Attivo

    Ciao, per prima cosa mysql_numrows ti mostra il numero dei record della tua query ed è per questo che hai sempre 6 come risultato. Per fare quello che tu chiedi devi cambiare la query, non ricordo bene la sintassi ma dovrebbe essere così:

    
    SELECT id,nick_votoricevente,SUM(votoricevuto) 'somma_voti' FROM voti GROUP BY nick_votoricevente
    
    

    e dentro il while aggiungi questa riga:

    
    $str_somma_voti = $riga['somma_voti'];
    
    

  • User Attivo

    Ciao;)
    Grazie mille ci siamo quasi!!
    C'è solo un piccolo problemino[PHP]

    <?
    //Apro la sessione e...
    session_start();

    //mi connetto al datase
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
    //seleziono il database
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
    //seleziono i campi da visualizzare per singolo utente
    $strsql="SELECT id,nick_votoricevente,SUM(votoricevuto) 'somma_voti' FROM voti GROUP BY nick_votoricevente";

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    //faccio un ciclo while
    while ($riga = mysql_fetch_array($rs)) {
    $str_somma_voti = $riga['somma_voti'];
    $str_nickvotoricevente = $riga['nick_votoricevente'];
    $str_votoricevuto = $riga['votoricevuto'];

    $colore="FF99FF";

    $voti = mysql_numrows($rs);

    echo"

    <div id="nick"><font color="#".$colore."" size ="6" face="Comic Sans MS">$str_nickvotoricevente</font>voti $str_somma_voti</div>";

    }//qui chiudi il while

    ?>
    [/PHP]
    Allora ora fortunatamente non mi ripete piu' nick trovati nello stesso campo...e mi da

    carlitos:voti 18
    carlo:voti 10
    morgana:voti 17

    Si dovrebbe fare questa ulteriore modifica...
    carlitos ha ricevuto in tutto 2 voti con votazione 8 e 10,ho notato che nella query mi fa la somma 8+10 invece io vorrei che non facesse la somma ma che mi desse 2 cioè il totale dei voti...e possibile farlo?
    Ovviamente il fatto della somma potrebbe servirmi in seguito magari per fare una media voto realtivo ad ogni utente..


  • User

    Prova a sostituire nella query COUNT a SUM e fammi sapere.


  • User Attivo

    Perfetto:DFunziona..!!
    Grazie mille senza di voi non ci sarei mai arrivato..!!!


  • User Attivo

    Sto cercando di fare in modo di mostrare solo gli utenti che hanno ricevuto diciamo piu' di 2 voti...ma non riesco a completare la query

    [PHP]
    //seleziono solo utenti che hanno ricevuto piu' di 2 voti
    $strsql="SELECT id,nick_votoricevente,COUNT(votoricevuto) 'somma_voti' WHERE votoricevuto > 2 FROM voti GROUP BY nick_votoricevente";

    [/PHP]
    Purtroppo mi da questo errore

    Errore query database: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE votoricevuto > 2 FROM voti GROUP BY nick_votoricevente' at

    :mmm:


  • ModSenior

    [php]
    $strsql="SELECT id,nick_votoricevente,COUNT(votoricevuto) as somma_voti FROM voti WHERE somma_voti > 2 GROUP BY nick_votoricevente";
    [/php]


  • User Attivo

    Ciao thedarkita:)
    subito dopo che ho postato il problema ho risolto cosi'

    [PHP]
    $strsql="SELECT id,nick_votoricevente,COUNT(votoricevuto) 'somma_voti'FROM voti WHERE votoricevuto >='2' GROUP BY nick_votoricevente";
    [/PHP]


  • User Attivo

    la mia query non funziona piu'..
    inserendo la query che mi hai dato te invece da questo errore...

    Errore query database: Unknown column 'somma_voti' in 'where clause'

    ho fatto cosi poi'
    [PHP]

    $strsql = "SELECT id, nick_votoricevente, COUNT(votoricevuto) AS votoricevuto
    FROM voti
    WHERE votoricevuto >= 2
    GROUP BY nick_votoricevente";
    [/PHP]
    Funziona solo che mi visualizza pure chi ha ricevuto 1 voto...:?


  • ModSenior

    Sicuro che stai eseguendo quella query?
    Perchè del campo somma_voti nella query non se ne parla...


  • User Attivo

    Ho modificato di nuovo...
    [PHP]
    <?
    //Apro la sessione e...
    session_start();

    //mi connetto al datase
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
    //seleziono il database
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
    //seleziono i campi da visualizzare per singolo utente
    $strsql = "SELECT id, nick_votoricevente, COUNT(votoricevuto) AS somma_voti
    FROM voti
    WHERE somma_voti > 2
    GROUP BY nick_votoricevente";

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    //faccio un ciclo while
    while ($riga = mysql_fetch_array($rs)) {
    $str_somma_voti = $riga['somma_voti'];
    $str_nickvotoricevente = $riga['nick_votoricevente'];
    $str_votoricevuto = $riga['votoricevuto'];

    $colore="FF99FF";

    $voti = mysql_numrows($rs);

    echo"

    <div id="nick"><font color="#".$colore."" size ="6" face="Comic Sans MS">$str_nickvotoricevente</font>voti $str_somma_voti</div>";

    }//qui chiudi il while

    ?>

    [/PHP]
    Mi da sempre questo errore

    Errore query database: Unknown column 'somma_voti' in 'where clause'

    Tengo aprecisare che il campo somma_voti nella mia tabella voti non esiste...dipende da quello..?