MySql : Tri de table et retour de tri

Résolu/Fermé
Signaler
Messages postés
10
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
30 août 2006
-
Messages postés
10
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
30 août 2006
-
Bonjour,
Voilà mon blem : j'ai une table de notes obtenues à un test par des utilisateurs (1 seul enregistrement par utilisateur). Je souhaiterai savoir si il est possible de faire une requête MySQL qui me retourne le rang d'un user dans la table sachant que ce rang n'est pas présent dans la table mais peut-être obtenu par un tri sur les notes ?
Merci pour votre aide parceque là je rame ;)
-Fly06

4 réponses

Les fonctions min et max te permmetrait d'avoir le meilleur et le moin bon :p
Sinon je pense qu'il serait neccessaire de creer une procedure avec curseur mais est ce possible avec mysql? je n'en suis pas sur...
0
Messages postés
17
Date d'inscription
mardi 15 août 2006
Statut
Membre
Dernière intervention
25 octobre 2006
18
Salut, pour moi, la question est trop imprécise, le rang du user est basé sur quoi ?? Si on tri le résultat d'une requête, et que l'on ajoute un rang fictif, puis que l'on recherche la correspondance, ça peut le faire...
Plus en détail :
select * from utilisateurs order by note
exécution de la requête
while ($row=mysql_fetch_array($result)) {
$user=$row[user];
$note=$row[note];
$i++;
$compile[]=array($i,$user,$note);
}

et ensuite,
$mec="utilisateur_a_trouver";
$rang=array_keys($compile,$mec);
echo"$mec à le rang $rang";

A vérifier et tester...
0
Messages postés
10
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
30 août 2006
1
Merci à tout les deux pour vos réponses.
@BD-31: Toute la difficulté vient du fait qu'il n'y a pas de colonne rang dans la table !!! J'ai pas testé ta réponse mais le faire en deux fois en cumulant une requête simple et un traitement php me paraît être la solution la plus raisonnable...

-Fly06
0
Messages postés
10
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
30 août 2006
1
J'ai testé et après quelques modifs ça marche !
Voici la partie php pour ceux qui seraient intéressés :
$i=1;
foreach ($rows as $row) {
if ($row->user == $my_user) break;
$i++;
}
$rank = $i;

Merci BD-31 pour ton aide :-)

-Fly06
0