- Home
- Categorie
- Coding e Sistemistica
- PHP
- Mostrare a video gli utenti piu' votati
-
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'];
-
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 dacarlitos:voti 18
carlo:voti 10
morgana:voti 17Si 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..
-
Prova a sostituire nella query COUNT a SUM e fammi sapere.
-
Perfetto:DFunziona..!!
Grazie mille senza di voi non ci sarei mai arrivato..!!!
-
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 erroreErrore 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
-
[php]
$strsql="SELECT id,nick_votoricevente,COUNT(votoricevuto) as somma_voti FROM voti WHERE somma_voti > 2 GROUP BY nick_votoricevente";
[/php]
-
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]
-
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...:?
-
Sicuro che stai eseguendo quella query?
Perchè del campo somma_voti nella query non se ne parla...
-
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 erroreErrore 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..?