Gestion d'une école

Messages postés
1
Date d'inscription
vendredi 9 mars 2018
Statut
Membre
Dernière intervention
9 mars 2018
- - Dernière réponse : jordane45
Messages postés
25609
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 mai 2019
- 8 avril 2018 à 19:54
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
Afficher la suite 

Votre réponse

2 réponses

Messages postés
25609
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 mai 2019
311
0
Merci
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 !

Commenter la réponse de jordane45
0
Merci
<?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
jordane45
Messages postés
25609
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 mai 2019
311 -
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.
Commenter la réponse de Marco