Comptage

Petit nouveau ! | 2 Messages

05 juin 2011, 21:43

Bonjour (ou bonsoir..tout dépend de l'heure à laquelle vous lisez mon post).

J'ai un "petit" problème et j'aimerais avoir de l'aide.
A partir du code ci-dessous, je calcule la moyenne des élèves présents dans ma table pour un type de session donné. Pour ça, je n'ai pas eu de souci.
$sql = mysql_query("SELECT eleveId,sessionFormId,AVG(note) AS moyenne FROM Note LEFT JOIN SessionFormation ON SessionFormation.idSession = Note.SessionFormId WHERE SessionFormation.typeSession='conduite' GROUP BY Note.Id") or die(mysql_error());
while($req = mysql_fetch_array($sql))
{
$moy = $req['moyenne'];
echo "L'id ".$req['eleveId']." a une moyenne de ".$moy."<br/>";

}

Mon problème est que j'aimerais comparer les moyennes entre elles afin d'établir un classement.
Depuis ce matin, je m'efforce de trouver une solution mais en vain :cry: . Si quelqu'un pouvait m'éclairer, ce serait vraiment sympa :priere: ..

En tout cas, merci d'avance pour votre aide...

ViPHP
xTG
ViPHP | 7331 Messages

06 juin 2011, 08:03

Stockes la variable $req dans un tableau et tu pourras faire tous les post-traitement que tu souhaites.

Petit nouveau ! | 2 Messages

06 juin 2011, 15:37

Salut.
Je vais tester ta proposition.
Merci

ViPHP
ViPHP | 2577 Messages

07 juin 2011, 14:44

Bonjour,

Et si tu ajoutes un "order by moyenne" en fin de requête ?

Au passage, je ne pense pas que la présence de sessionFormId dans les colonnes extraites et son absence dans le group by soit correcte. Bien que mySQL soit permissif, il faut que toutes les colonnes extraites soient utilisées dans le group by ou utilisées avec une fonction des statistiques comme la somme, la moyenne, le max...
Dans le cas ou un élève a participé à plusieurs sessions de type conduite, quel sessionFormId va être retournée ?