Probleme de rang des éléves d'une classe

msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - 16 juil. 2014 à 00:53
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 26 juil. 2014 à 19:26
Bonjour,
je reviens sur le problème de rang des élèves d'une classe. cette fois il s'agit du classement des élèves selon les moyennes générale obtenues.
j'ai tenté de suivre la solution de @jordane45 mais je me suis planté.
le rang affiche 1 pour tous les élèves :


voici le code inspiré de celui de @jordane45 :
	     $sql_g = "
SELECT SUM(moyenne*coeff)/SUM(coeff) AS MG
,matricule
FROM tb_classement
WHERE matricule = '".$classement["matricule"]."'
AND (MONTH(perode) BETWEEN '".$debut."' AND '".$fin."')
GROUP BY matricule
ORDER BY MG DESC, matricule DESC
";
$req_g = mysql_query($sql_g) or die('Erreur SQL !<br>'.$sql_g.'<br>'.mysql_error());
$rang_g =0;
while($row_g = mysql_fetch_assoc($req_g)){
$rang_g++;

2 réponses

cs_JDel Messages postés 14 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 1 septembre 2014
26 juil. 2014 à 12:47
Le probleme ne doit pas etre dans ce bout de code mais dans ton code d'insertion de tes données dans la table. A mon avis tu devrais mettre a jour ton champ rg en lorsque que tu ajoute une note aux éléves. De plus pourquoi tu fais " SELECT SUM(moyenne*coeff)/SUM(coeff) AS MG" d'apres ta capture d'ecran tu calcul la MG a l'insertion de tes données (champs mg) non ? "SELECT mg FROM tb_classement WHERE...." devrait suffir non ? Et arf petit conseil passes à PDO pour la gestion de tes BDD :-)
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
26 juil. 2014 à 19:26
Bonjour c_JDel.
De plus pourquoi tu fais " SELECT SUM(moyenne*coeff)/SUM(coeff) AS MG" d'apres ta capture d'ecran tu calcul la MG a l'insertion de tes données (champs mg) non
NON. Comme tu peux le voir dans sa requête... il utilise un ALIAS ... c'est pour cela que "MG" apparait dans sa capture d'écran.

SELECT SUM(moyenne*coeff)/SUM(coeff) AS MG


@MSI .. il nous manque la suite de ton code... celui après ta boucle....
Je pense que le souci vient plutôt de là..
0
Rejoignez-nous