Gestion d'une école

gkba 1 Messages postés vendredi 9 mars 2018Date d'inscription 9 mars 2018 Dernière intervention - 9 mars 2018 à 16:28 - Dernière réponse : jordane45 22875 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 octobre 2018 Dernière intervention
- 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

4 réponses

jordane45 22875 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 octobre 2018 Dernière intervention - 9 mars 2018 à 21:07
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 22875 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 octobre 2018 Dernière intervention - 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.
Commenter la réponse de Marco

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.