MySql : Tri de table et retour de tri

Résolu
fly06 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
fly06 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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

Nescence
 
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
BD-31 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   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
fly06 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   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
fly06 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   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