per capire bene quello che succede dovresti mettere anche il contenuto delle tabelle...
per capire bene quello che succede dovresti mettere anche il contenuto delle tabelle...
Jekkil
provo a riscrivere meglio quello che vorrei fare
allora:
io so di per certo che la mia tabella sarà popolata da 5 record per ogni torneo
di ogni torneo voglio prelevare colui che ha il punteggio piu' alto
quindi se avrò(faccio finta che siano 2 record per ogni torneo
id_utente-|-torneo-|-punteggio
000005 -|- ciauz -|- 54
000006 -|- ciauz -|-23
000005 -|- bau -|- 120
000006 -|- bau -|- 150
io vorrei stampare tramite il ciclo for(credo) gli ultimi 5 tornei vinti col punteggio più alto
quindi
000005 -|- ciauz -|- 54
000006 -|-bau -|- 150
per fare cio' deve per forza fare il distinct dei tornei e prelevare il MAX(punteggio) come logiga ci sta però non capisco perchè cavolo non va!![]()
ma nella tua query usi pure un'altra tabella: giudizio temporaneo...vorrei sapere il contenuto anche di questa per capire bene che combina la query![]()
Jekkil
giudizio temporaneo è proprio quella che ho detto prima
(
id_utente-|-torneo-|-punteggio
000005 -|- ciauz -|- 54
000006 -|- ciauz -|-23
000005 -|- bau -|- 120
000006 -|- bau -|- 150
)
io la combinavo con la tabella user per estrarre il nome utente tramite l'id
ok allora per il momento lasciamo stare la combinazione con l'altra tabella ok?
se fai
cosa ti esce?codice:SELECT id_utente, torneo, MAX(punteggio) as punteggio from giudizio_temporaneo GROUP BY torneo
Jekkil
è perfetto mi da i risultati attesi finalmente grazie mille
ora devo solo combinare con la tabella user
giudizio_temporaneo.id_utente=user.id
giusto?
anzi no non mi da i risultati attesi
la tabella è composta cosi
id_torneo torneo id_utente punteggio
1 0000000008 10 80
2 0000000008 6 80
3 0000000008 7 80
4 0000000008 8 120
mi da come risultato
0000000008 10 120
la stanza e il punteggio è esatto, ma l'id utente no, è l'id_utente 8 ad aver fatto 120 di punteggio e non l'id_utente 10
io tramite i tuoi consigli faccio cosi
Codice PHP:
$query_ultimi_win = mysql_query("SELECT id_utente, torneo, MAX(punteggio) as punteggio from giudizio_temporaneo GROUP BY torneo");
$lista_ultimi_win = mysql_num_rows($query_ultimi_win);
for($x_ultimi_win=0;$x_ultimi_win<$lista_ultimi_win;$x_ultimi_win++){
$tot_prova = mysql_fetch_row($query_ultimi_win);
echo "$tot_prova[0] $tot_prova[1] $tot_prova[2]
";
}
prova così:
codice:SELECT * FROM nome_tabella WHERE punteggio = (SELECT MAX( punteggio ) FROM nome_tabella);
Jekkil
scusami, la query di prima è sbagliata!
Questa funziona!!
codice:SELECT * FROM tabella WHERE (torneo, punteggio) IN (SELECT torneo, MAX( punteggio ) AS punteggio FROM tabella GROUP BY torneo)
Jekkil
jekkil intanto grazie per la costanza di come mi stai aiutando però non so come stampare la query che mi hai detto
in pratica io faccio sempre cosi
la tua query cosi elaborata non l'ho mai fatta.....mi puoi dire anche come la stampo?Codice PHP:
$query = mysql_query("SELECT * FROM tabella WHERE ecc ORDER by id DESC LIMIT 9");
$lista = mysql_num_rows($query);
for($x=0;$x<$lista;$x++){
$dato = mysql_fetch_assoc($query);
}
grazie ciao