Determiner le rang d'un élève [Fermé]

Signaler
Messages postés
206
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 janvier 2021
-
Messages postés
14003
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 janvier 2021
-
Bonjour chers tous,

j'ai conçu un code qui me permet d'afficher les élèves d'une classe selon leurs moyenne,

Quelqu'un peut-il m'aider sur comment écrire une requête qui permet d'afficher le rang de chaque élève

4 réponses

Messages postés
30655
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
22 janvier 2021
7 256
Bonjour,

Tu devrais t'inspirer de : https://www.developpez.net/forums/d139375/bases-donnees/langage-sql/sql-server-probl-me-classement-calcul-d-rang/ solution qui prend en compte les ex aequo
Messages postés
206
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 janvier 2021

Merci pour le lien, Comment pourrai ecrire en PHP si j'ai envi de recuperer le RANG d'un élève et l'afficher à part?
Messages postés
14003
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 janvier 2021
788
bonjour,
peux-tu partager ton code php ainsi que la requête qui te donne le rang?
Messages postés
206
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 janvier 2021
>
Messages postés
14003
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 janvier 2021



//Recherche les noms et prenoms des élèves
 $sql = "SELECT E.* , M.*
         FROM eleve E
         LEFT JOIN moyengeneral M ON M.ideleve = E.ideleve
         WHERE E.class = ? 
         AND E.iduser = ? AND M.moyene >= ? 
         ORDER BY M.moyene DESC";
 $datas = array($class, $iduser, $moyen);
 
  try {  
    $req = $bdd->prepare($sql);
    $req->execute($datas);
    $donnees = $req->fetchAll(); //on stocke le resultat de la requete dans un ARRAY
  } catch(Exception $e){
      die('Erreur : '.$e->getMessage());
  }   
  
Messages postés
14003
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 janvier 2021
788 >
Messages postés
206
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 janvier 2021

peux-tu partager la requête qui te donne le rang?
Messages postés
206
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 janvier 2021


 $sql = "SELECT E.* , M.*
         FROM eleve E
         LEFT JOIN moyengeneral M ON M.ideleve = E.ideleve
         WHERE E.class = ? 
         AND E.iduser = ? 
         ORDER BY M.moyene DESC";
 $datas = array($class, $iduser);
 
  try {  
    $req = $bdd->prepare($sql);
    $req->execute($datas);
    $donnees = $req->fetchAll(); //on stocke le resultat de la requete dans un ARRAY
  } catch(Exception $e){
      die('Erreur : '.$e->getMessage());
  }   


J'aimerai recupéré le RANG d'un élève selon sa moyenne et l'afficher à part,
Comment puis-je procédé SVP?
Messages postés
14003
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 janvier 2021
788
as-tu compris et utilisé les informations données ici: https://forums.commentcamarche.net/forum/affich-36377033-determiner-le-rang-d-un-eleve#1
Messages postés
206
Date d'inscription
vendredi 15 novembre 2019
Statut
Membre
Dernière intervention
13 janvier 2021

 $sql = "SELECT E.* , M.*
         FROM eleve E
         LEFT JOIN moyengeneral M ON M.ideleve = E.ideleve
         WHERE E.class = ? 
         AND E.iduser = ? AND M.moyene >= ? 
         ORDER BY Rang DESC";
 $datas = array($class, $iduser, $moyen);


Quand je met Rang à la place de la moyenne, il m'affiche une erreur:

Erreur : SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rang' in 'order clause'
Messages postés
14003
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 janvier 2021
788
je pense que tu n'as pas bien appliqué la suggestion.