MySql : Tri de table et retour de tri

Résolu/Fermé
fly06 Messages postés 10 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 30 août 2006 - 29 août 2006 à 12:03
fly06 Messages postés 10 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 30 août 2006 - 30 août 2006 à 14:15
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
BD-31 Messages postés 17 Date d'inscription mardi 15 août 2006 Statut Membre Dernière intervention 25 octobre 2006 18
29 août 2006 à 17:09
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 samedi 6 décembre 2003 Statut Membre Dernière intervention 30 août 2006 1
29 août 2006 à 22:58
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 samedi 6 décembre 2003 Statut Membre Dernière intervention 30 août 2006 1
30 août 2006 à 14:15
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