Gestion d'une école

Signaler
Messages postés
1
Date d'inscription
vendredi 9 mars 2018
Statut
Membre
Dernière intervention
9 mars 2018
-
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
-
Bonjour,
comment afficher le bulletin de notes d'un élève en tenant compte de sa position de rang de façon automatique.
merci d'avance

2 réponses

Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
Bonjour,

Ta question concerne le code php à propement parlé ... ou la requête SQL ?

Si requête... tu souhaites avoir le "rang" ?
Donc un truc du genre
SELECT    first_name,
          note,
         @curRank := @curRank + 1 AS rank
FROM      person p, (SELECT @curRank := 0) r
ORDER BY  note;


Après... sans rien savoir sur la structure de ta bdd... ni même ce que tu as commencé à faire... impossible de te répondre !

<?php
//RECHERCHE MOYENNE MAXIMALE
$requeteEXPmax = "select max(moyennenote) from note_php where  anneescolairenote='$anneescolaire' and matierenote='Expression-Orale' and classenote='$nomcla' and  trimestre='$trimestre'";
$resultatEXPmax = mysql_query($requeteEXPmax) or die(mysql_error()); $rowEXP1er=mysql_fetch_array($resultatEXPmax);
$RangEXP1er=$rowEXP1er[0];
//RECHERCHE NBRE DE MOYENNE SUP ET EGALE A LA NOTE
$requeteEXPrg = "select count(moyennenote) from note_php where anneescolairenote='$anneescolaire' and  moyennenote>'$rowEXP[0]' and moyennenote<='$RangEXP1er' and matierenote='Expression-Orale' and classenote='$nomcla' and  trimestre='$trimestre'";
$resultatEXPrg = mysql_query($requeteEXPrg) or die(mysql_error()); $rowEXPrg=mysql_fetch_array($resultatEXPrg);
$RangEXP=$rowEXPrg[0];
 if($rowEXP[0]==$RangEXP1er)  echo "1" ; else echo $RangEXP+1 ;
 ////RECHERCHE NBRE DE MOYENNE EGALE A NOTE
$requeteEXPex = "select count(moyennenote) from note_php where  anneescolairenote='$anneescolaire' and moyennenote='$rowEXP[0]' and matierenote='Expression-Orale' and classenote='$nomcla' and  trimestre='$trimestre'";
$resultatEXPex = mysql_query($requeteEXPex) or die(mysql_error()); $rowEXPrgex=mysql_fetch_array($resultatEXPex);
$RangEXPex=$rowEXPrgex[0];
 if($RangEXPex>1)  echo"ex" ; else echo"e" ;
?>


EDIT : Ajout des balises de code
ce code affiche le rang de la note et tenant compte des note égales
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
Bonjour Marco.
Déjà.. ton code utilise l'ancienne extension mysql. celle ci est considérée comme obsolète et ne sera ( ou ne l'ai plus d'ailleurs.....) utilisée.
Désormais, il faut passer par PDO ou mysqli.
http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

Ensuite, ton code c'est (désolé pour le terme...) du bidouillage.
Sans compter qu'il faudrait avoir la même structure de table que celle utilisée dans ton code.
Structure de table qui ne me semble pas pertinente puisqu'il semble que tu y stockes déjà les "moyennes" des élèves.
Hors, il suffit de les calculer lorsqu'on en a besoin au lieu de les insérer en bdd.