Affichage requete SQL

[Résolu]
Signaler
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008
-
Messages postés
4
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
3 avril 2008
-
Bonjour à tous,

Voilà mon problème : j'ai une requete qui me renvoi ça :

Paul : 2
Pierre : 7
Jacques : 0

Voilà mon code :

$res = mysql_query("SELECT * FROM utilisateurs");
while($util = mysql_fetch_array($res))
{
$utilisateur = $util['identifiant'];



$sql = mysql_query("SELECT COUNT(*) AS nb_resultats FROM stats WHERE utilisateur='$utilisateur'");
$frm = mysql_fetch_array($sql);



echo $utilisateur." : ".$frm['nb_resultats']."
";
}

mais je voudrais en faite afficher seulement le résultat le plus grand
c'est à dire ......Pierre : 7 
Après beaucoup de recherche sur internet je n'est pas trouver de solutions
je pense qu'il faut que je modifie m'a requete SQL mais je ne vois pas comment
faire......si quelqu'un a une idée, n'hésiter pas !!!

16 réponses

Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
j'ai oublier des s je te la remet :
select utilisateurs.utilisateur , count(*) as result from utilisateurs,
stats where utilisateurs.utilisateur=stats.utilisateur group by
utilisateurs.utilisateur order by result desc


Personne ne peut se permettre de juger l'autre....
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
tu peux soit utiliser la fonction MAX de mysql mais je ne sais pas si c'est valable avec un COUNT sinon tu peux classer tes resultat par ordre decroissant et ne garder que le premier :
$sql = mysql_query("SELECT COUNT(*) AS nb_resultats FROM stats WHERE utilisateur='$utilisateur' ORDER BY nb_resultats DESC");
$frm = mysql_fetch_array($sql);

j'espere que ca t'aideras


Personne ne peut se permettre de juger l'autre....
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

merci pour ta réponse "sebastien_et_typh", mais a priori ça ne fonctionne pas dans ce cas.
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
quelle methode ne fonctionne pas?ta table utilisateur a combien de champ?


Personne ne peut se permettre de juger l'autre....
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Ma table utilisateur contient 3 entrée "Paul, Pierre, Jacques", et ce qui
ne fonctionne pas c'est le "ORDER BY nb_resultats DESC" ça me retourne
les résultats toujours dans le même ordre... 
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
si j'ai bien compris ce que tu veux faire c'est compter toutes les ligne d'un meme utilisateur dans ta table utilisateur?


Personne ne peut se permettre de juger l'autre....
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
de ta table stat desoler j'avais pas vu mais c'est bien ca que tu cherche a faire?


Personne ne peut se permettre de juger l'autre....
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Oui c'est bien bien ça, et je veux afficher celui qui a le plus de résultats.
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
tu a essayer le order by sans les apostrophes car mois j'ai fais une requete du style select count(*) as nb from table order by nb desc et ca fonctionne tres bien c'est bizarre que ca ne te trie pas les resultat


Personne ne peut se permettre de juger l'autre....
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
et si tu essaye :

select utilisateur.utilisateur , count(*) as result from utilisateur, stats where utilisateur.utilisateur=stats.utilisateur group by utilisateur.utilisateur order by result desc


Personne ne peut se permettre de juger l'autre....
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Ta requete me semblais bien mais elle me renvoie 8 au lieu de 7 ???
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Désolé c'est de ma faute Merci beaucoup ça fonctionne....
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
ok c'est cool pour toi...
mais j'ai une question tu a prevu le cas ou il y a des egalite


Personne ne peut se permettre de juger l'autre....
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Oui en faite j'ai fais une boucle qui m'affiche ensuite le nom de celui ou de ceux qui
on un total qui correspondent à ma requete.....

Merci encore.
Messages postés
48
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
9 mai 2011

J'ai pas essayé mais ça devrait pouvoir marcher...

$seuil = 0;
$txtresult = "Pas de résultat";



$res = mysql_query("SELECT * FROM utilisateurs");
while($util = mysql_fetch_array($res))
{



 $utilisateur = $util['identifiant'];
 $sql = mysql_query("SELECT COUNT(*) AS nb_resultats FROM stats WHERE utilisateur='$utilisateur'");
 $frm = mysql_fetch_array($sql);
 if ($frm['nb_resultats']>=$seuil)
 {
  $seuil = $frm['nb_resultats'];
  $txtresult = $utilisateur." : ".$frm['nb_resultats'];
 }
}
echo $txtresult."
";
Messages postés
4
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
3 avril 2008

j'ai un formulaire de reclamation je cherche à savoir comment afficher le nombre de reclamation dans un tableau  à partir de base mysql