Faire des annotations en fonction d'un critère

Résolu/Fermé
LebeauPain Messages postés 12 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 23 mai 2023 - 27 janv. 2022 à 16:16
LebeauPain Messages postés 12 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 23 mai 2023 - 28 janv. 2022 à 17:11
Bonjour, voilà j me suis inspiré d'un tutoriel pour créer un simulateur de bulletin de notes scolaires que je veux intégrer sur mon projet. le hic se situe quand je veux qu'à chaque intervalle de notes pour chaque discipline, je puisse afficher une appréciation...

merci
<?php 
$matiere = ['Anglais','Français','Mathématiques','Sciences Physiques','S.V.T','Sport','Histoire & Géographie','Education Civique','Economie familiale'];
$coeff = [3,6,6,3,3,2,3,1,2];
$note = $_POST['note'];
$som_coeff = 0;
$totalpoint = 0;
for ($i=0; $i <=8 ; $i++) {
// code...
$som_coeff = $som_coeff + $coeff[$i];
$totalpoint = $totalpoint + $note[$i]*$coeff[$i];
$moyenne = round($totalpoint/$som_coeff,2 ) ;
}
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Lycee Bac Aviation</title>
<link rel="stylesheet" href="Bull_Tableau.css">
<style type="">
table{
border-style:ridge ;
border-width: 2px;
border-color: black;
margin: 2% 50% 50% 30%;
}
h3{
box-shadow: 5px 5px 5px black;
text-align: center;
}
th {border: 2px solid orange;}
td {border: 30px solid orange; background: orange;}
</style>

</head>
<body>
<h3>SIMULATEUR DE BULLETINS DE NOTES SCOLAIRE</h3>
<form method="POST" action="#">
<table class = "tableau">
<tr><th>Matières</th><th>Notes</th><th>Coeffs</th><th>Points</th><th>Appréciations</th></tr>
<?php
foreach ($matiere as $key => $value) {
// code...
$point = ($note[$key]*$coeff[$key]);
echo '<tr><td>'.$value.'</td><td><input type = "number" name = "note[]" value = "'.$note[$key].'" max = 20 min = 0></td><td>'.$coeff[$key].'</td><td>'.$point.'</td><td>Passable</td></tr> ';

}


?>
<tr><th>TOTAL</th><th></th><th><?php echo $som_coeff;?></th><th><?php echo $totalpoint;?></th><th>Moyenne Trimestrielle<br><?php echo $moyenne?></th></tr>
<div><input type="submit" name="ENVOYER" value="Calculer"></div>
</table>
</form>
</body>
</html>


Configuration: Macintosh / Safari 13.1.3

5 réponses

jordane45 Messages postés 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719
27 janv. 2022 à 16:34
Bonjour,


le hic se situe quand je veux qu'à chaque intervalle de notes pour chaque discipline, je puisse afficher une appréciation...

C'est à dire ?
Qu'as tu essayé ?
Sur quoi bloques tu exactement ?
Tu as des messages d'erreur ? Un souci de conception ? autre ?
0
LebeauPain Messages postés 12 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 23 mai 2023
Modifié le 27 janv. 2022 à 16:57
c'est à dire que j'ai voulu taper dans cette balise <td>Passable</td> ( qui se retrouve dans la fonction écho) les lignes de codes pour afficher les appréciations. du coup en rechargeant ma page, le navigateur affiche une page blanche.
0
jordane45 Messages postés 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719
27 janv. 2022 à 19:15
Si tu ne nous montre pas le code que tu as essayé de faire on ne risque pas de trouver ce qui a bloqué...
0
LebeauPain Messages postés 12 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 23 mai 2023
28 janv. 2022 à 16:24
Bonjour a tous! je cherche où dois-je mettre le code suivant pour qu'il s'affiche sur mon simulateur en fonction des notes saisies pour chaque discipline...

Merci...


<?php
	
	if($note[$i]>=10 && $note[$i]<12){
		echo 'Passable';
	}elseif ($note[$i]>=12 && $note[$i]<15 ) {
		 
		echo  'Assez Bien';
	}elseif ($note[$i]>=15 && $note[$i]<16) {
		 
		echo "Bien";

	}elseif ($note[$i]>=15 && $note[$i]<17)
	{
		echo "Très Bien";

	}elseif ($note[$i]>=17 && $note[$i]<=20) {

		echo 'Excellent';

	}elseif ($note[$i]>=8 && $note[$i]<10) {

		echo 'Insuffisant';

	} elseif ($note[$i]>=6 && $note[$i]<8) {

		echo 'Faible';
	}else {
		echo 'Très Faible';
	}
?>

0
jordane45 Messages postés 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719
Modifié le 28 janv. 2022 à 16:56
Dans ton foreach

En gros

foreach ($matiere as $i => $value) {

  if ($note[$i] >= 17) {
    $niveau = 'Excellent';
  } elseif ($note[$i] == 16) {
    $niveau = "Très Bien";
  } elseif ($note[$i] == 15) {
    $niveau = "Bien";
  } elseif ($note[$i] >= 12) {
    $niveau = "Assez Bien";
  } elseif ($note[$i] >= 10) {
    $niveau = "Passable";
  } elseif ($note[$i] >= 8) {
    $niveau = "Insuffisant";
  } elseif ($note[$i] >= 6) {
    $niveau = "Faible";
  } else {
    $niveau = 'Très Faible';
  }

  // code...
  $point = ($note[$i] * $coeff[$i]);
  echo '<tr>
          <td>' . $value . '</td>
          <td><input type = "number" name = "note[]" value = "' . $note[$i] . '" max="20" min="0"></td>
          <td>' . $coeff[$key] . '</td>
          <td>' . $point . '</td>
          <td>'.$niveau.'</td>
        </tr> ';
}



par contre je suis étonné que tu aies deux variables .. une pour les notes .; et une pour les coef ..

Ne pourrais tu pas directement remonter ces deux informations dans ta requête SQL ( et y faire le calcul directement .. au lieu de le faire sensuite dans ton php ) ??



0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LebeauPain Messages postés 12 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 23 mai 2023
Modifié le 28 janv. 2022 à 17:13
je n'ai pas un niveau aussi élevé que le tient... Mais je prends bonne note. Merci beaucoup..
0