Rechercher : dans
Par :

MySql : Tri de table et retour de tri

Dernière réponse le 30 aoû 2006 à 14:15:20 fly06, le 29 aoû 2006 à 12:03:24 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « MySql : Tri de table et retour de tri » dans :
MySQL - Afficher les informations sur une table Voir Pour afficher les informations sur une table TabTest il faut lancer la commande suivante (l'option \G améliore le formatage u résultat) : mysql> show create table TabTest\G *************************** 1. row *************************** ...
Importer et exporter des données sous MySQL VoirImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...

1

Nescence, le 29 aoû 2006 à 14:46:31

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...

Répondre à Nescence

2

BD-31, le 29 aoû 2006 à 17:09:16

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...

Répondre à BD-31

3

fly06, le 29 aoû 2006 à 22:58:06

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

Répondre à fly06

4

 fly06, le 30 aoû 2006 à 14:15:20

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

Répondre à fly06