Affichage de la mention

Résolu
Signaler
Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
20 juillet 2009
-
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
-
Bonjour!

Je développe une application sur la gestion des notes en php.Tout marche bien à l'exception de l'affichage de la mention.En fait,il n'arrive pas '(je pense) à comparer la moyenne pour l'affichage de la mention.
Voila ce que j'ai fait:

if($moyenne=='10' and $moyenne<='11,99') {
$mention="Passable";
}
 else if($moyenne=='12' and $moyenne<='13,99'){
 $mention="Assez-Bien";
 }
 else if($moyenne=='14' and $moyenne<='15,99'){
 $mention="Bien";
 }
 else if($moyenne<'10'){
   $mention="";
 }
 else if($moyenne>='16'){
   $mention="Tres Bien";
 }

La moyenne s'affiche au format 00,00 donc deux chiffres après la virgule.Alors je me demande si j'ai faussé quelque chose dans mon code.

Merci pour votre aide et éclaircissements!

6 réponses

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
14
En virant les == pour les remplacer par le >= ce serais une bonne avancée. Forcément s'il faux que le moyenne soit, dans on exemple, égale a 12 et inférieur a 13.99, avec 12.5 ce sera faux.

Autre remarque, tester le cas où la moyenne est inférieur a 10 ne sert a rien.
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
14
Salut,

Plusieurs remarque :
 - Le séparateur décimal est le point et non la virgule
 - Si tu met le nombre entre quotes c'est une chaîne de caractère. D'accord PHP est très souple a ce niveau là mais quand même ...
 - elseif existe, pas besoin de faire else if.
 - Merci printf() pour afficher ta chaîne bien formatée (regarde le manuel pour savoir quoi mettre comme format).
Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
20 juillet 2009

Re
En enlevant la virgule en remplaçant par un point et j'ai aussi enlevé les quotes,rien à faire il m'affiche rien.J'ai l'impression qu'il ne compare pas le nombre avec virgule car si par exemple la moyenne =12 il m'affiche "Assez bien" mais si c'est 12.50 il m'affiche rien.
Franchement je ne comprends plus rien!
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
14
Ho j'oubliais, tu fait quoi des valeurs situées, par exemple, entre 13.99 et 14 ? Si on a des opérateur de comparaison strict ce n'est pas pour rien, là tu as une (théorique) infinités de valeurs non gérées.
Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
20 juillet 2009

Merci!
Ca marche comme je veux!Le problème,il fallait comme tu as dis virer le == et mettre >= .

Merci encore et bonne soirée!!
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
14
De rien ;)

Allez, pour la route :
if($moyenne >= 10 && $moyenne < 12)
  $mention='Passable';
elseif($moyenne >= 12 && $moyenne < 14)
  $mention='Assez-Bien';
elseif($moyenne >= 14 && $moyenne < 16)
  $mention='Bien';
elseif($moyenne >= 16)
  $mention='Tres Bien';
printf("Note : %01.2f/20 %s\n", $moyenne, $mention);