Gestion d'une école

gkba Messages postés 1 Date d'inscription vendredi 9 mars 2018 Statut Membre Dernière intervention 9 mars 2018 - 9 mars 2018 à 16:28
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 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

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
9 mars 2018 à 21:07
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 !

0
<?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
0
ce code affiche le rang de la note et tenant compte des note égales
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
8 avril 2018 à 19:54
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.
0
Rejoignez-nous