msi79
Messages postés509Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention 2 mai 2023
-
16 juil. 2014 à 00:53
jordane45
Messages postés38238Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 6 septembre 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++;
cs_JDel
Messages postés14Date d'inscriptionmardi 28 janvier 2003StatutMembreDerniè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 :-)
jordane45
Messages postés38238Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 6 septembre 2024345 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à..