Bonjour la communauté,

Je travail sur une application de gestion des notes scolaires et a cet effet j'ai conçu un formulaire pour enregistrer les notes des élèves d'une classe avec un effectif variable (l'effectif des élèves varient par classe).

Pour enregistrer les notes des élèves d'une classe, on sélectionne la classe et le formulaire ci-dessous apparaît:
Nom : form1.png
Affichages : 264
Taille : 3,9 Ko

Voici le code de la capture d'écran du formulaire ci-dessus:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<form name="form-enr-note" method="POST" action="">
    <?php  	if(isset($erreursql)){ echo $erreursql; }
    if(isset($infosuccess)){ echo $infosuccess;  } ?>
    <div class="col-md-12 form-group has-feedback">
        <div class="col-xs-12 col-sm-2 col-md-2"><?php
            $sqlan=$connexion->query("SELECT * FROM annee_scolaires"); 
            ?><label for="anant">Année</label>
            <select name="anant" id="anant" class="form-control"><?php 
                if(!$sqlan){ ?>
                    <option>Erreur 1</option><?php
                }else{	?>
                    <option value="0">Sélectionnez</option><?php
                    if(mysqli_num_rows($sqlan)<>0){ 
                        while($repsqlan=$sqlan->fetch_assoc()){  ?>
                            <option value="<?php echo $repsqlan['id_an_scol']; ?>"><?php echo $repsqlan['lib_an_scol'];  ?></option><?php	
                        }
                    }elseif(mysqli_num_rows($sqlan)==0){ ?>
                        <option>Vide</option><?php
                    }
                }													?>
            </select>
            <span class="error-message"><?php if(isset($erreuranant)) echo $erreuranant;  ?></span>
        </div>
        <div class="col-xs-12 col-sm-2 col-md-2 col-lg-2">
            <label for="nmois">Mois</label>
            <select name="nmois" class="form-control" id="nmois">
                <option value="0">Sélectionnez</option>
 
            </select>
            <span class="error-message"><?php if(isset($erreurnmois)) echo $erreurnmois;  ?></span>
        </div>
 
        <div class="col-xs-12 col-sm-2 col-md-2 col-lg-2" id="matiere"><?php
            $sqlcl=$connexion->query("SELECT * FROM `matieres_dispenses` LEFT JOIN `appgescodb`.`matieres` ON `matieres`.`id_mat`=`matieres_dispenses`.`id_mat` WHERE id_classe_scol='".$ci."'");
            //$sqlcl=$connexion->query("SELECT * FROM options_detudes LIMIT 3"); 
            if(!$sqlcl){
                $erreursql="<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Une erreur interne s'est produite! Veuillez informer l'administrateur de l'application (" . $connexion->errno . ") " . $connexion->error."</h4></div></div>";
            }
            else{ 
                if(mysqli_num_rows($sqlcl)<>0){?> 
                    <label for="nmatiere">Matières</label>
                    <select name="nmatiere" class="form-control" id="nmatiere">
                        <option value='0'>Sélectionnez</option><?php
                            while($rep=$sqlcl->fetch_assoc()){
                                if(isset($nmatiere)){
                                    if($nmatiere==$rep['id_mat']){ 															
                                        echo"<option value='".$nmatiere."' selected>".$rep['nom_mat']."</option>";
                                        $rep['id_mat']++;
                                        continue;
                                    }
                                    echo"<option value='".$rep['id_mat']."'>".$rep['nom_mat']."</option>";
                                }
                                else{
                                    echo"<option value='".$rep['id_mat']."'>".$rep['nom_mat']."</option>";													
                                }
                                $rep['id_mat']++; 
                            }	?>
                    </select>
                    <span class="error-message"><?php if(isset($erreurnmatiere)) echo $erreurnmatiere;  ?></span><?php
                }
                else{ 
                    if(mysqli_num_rows($sqlcl)==0){?>
                        <label for="nmatiere">Matières</label>
                        <select name="nmatiere" id="nmatiere" class="form-control" size='1'>
                            <option value=0>Liste vide</option>
                        </select><?php		
                    }
                }
            } ?>
        </div>
        <div class="col-xs-12 col-sm-3 col-md-2">
            <label for="noteecrite">Soumettre</label><br>
            <input type="submit" name="enregistrer" id="enregistrer" value="Soumettre" class="btn btn-primary pull-left">
        </div>
    </div> 
</form>
Dans ce formulaire, l'utilisateur sélectionne une année scolaire, le mois et la matière puis valide le formulaire.
Voici le code de traitement du formulaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php if(isset($_POST['enregistrer'])){  
    $anant=strip_tags($_POST['anant']); $anant=htmlspecialchars($anant);
    $nmois=strip_tags($_POST['nmois']); $nmois=htmlspecialchars($nmois); $nmatiere=strip_tags($_POST['nmatiere']);
    $nmatiere=htmlspecialchars($nmatiere);
    $valid=true;
    if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>";
    }
    if(!preg_match("#^[0-9]{1,2}$#", $nmois) || ($nmois==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner un mois ! </h4></div></div>";
    }
    if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>";
    }
    if(!preg_match("#^[0-9]{1,3}$#", $nmatiere) || ($nmatiere==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une matière ! </h4></div></div>";
    }
    if($valid){
        $lcl=$connexion->query("SELECT * FROM classes_detudes WHERE id_an_scol='".$anant."' AND id_classe_scol='".$ci."'"); 
        if(!$lcl){
            $erreursql="<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Une erreur interne s'est produite! Veuillez informer l'administrateur de l'application (" . $connexion->errno . ") " . $connexion->error."</h4></div></div>";
        }else{
            if(mysqli_num_rows($lcl)>=1){ $n=1; $i=1; ?>
                <fieldset><legend>Veuillez remplir la fiche de note</legend>
                    <div class="row">
                        <div class="col-sm-12 col-md-10 col-lg-8">
                            <form name="fiche" method="POST" action="">
                        <table class='table'>
                            <thead><tr><th>N°</th><th>Matricule</th><th>Prénoms et Noms</th><th>Notes</th></tr></thead>
                            <tbody><?php
                                while($replcl=$lcl->fetch_assoc()){ $idelev=$replcl['id_elev']; 																?>
                                    <tr><td><?php echo $n++; ?></td>
                                        <td><?php 
                                            $sqlpn=$connexion->query("SELECT num_mat_elev, prenom_elev, nom_fam_elev FROM eleves WHERE id_elev='".$idelev."'");
                                            if(!$sqlpn){
                                                $erreursql="<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Une erreur interne s'est produite! Veuillez informer l'administrateur de l'application (" . $connexion->errno . ") " . $connexion->error."</h4></div></div>";
                                            }else{
                                                if(mysqli_num_rows($sqlpn)>=1){ 
                                                    while($repsqlpn=$sqlpn->fetch_assoc()){ $matricule=$repsqlpn['num_mat_elev']; $prenom=$repsqlpn['prenom_elev']; $nom=$repsqlpn['nom_fam_elev']; echo $matricule; 	}																
                                                }
                                                elseif(mysqli_num_rows($sqlpn)==0){ echo'Liste vide'; }
                                            } ?></td>
                                        <!-- Prénoms et Noms de l'élève -->
                                        <td><?php 
                                            echo $prenom.' '.$nom;
                                              ?>
                                        </td>
                                        <!-- Note -->
                                        <td width=50><input type="text" class="form-control" id="note" name="note<?php echo $i++; ?>" placeholder="Note" value="<?php if(isset($note)) echo $note; ?>" size=20>
                                            <span class="error-message"><?php if(isset($erreurnote)) echo $erreurnote;  ?></span>
                                        </td>
                                    </tr><?php
                                } ?>
 
                            </tbody>
                        </table>
                            <input type="hidden" name="annee" value="<?php echo $anant; ?>">
                            <input type="hidden" name="nclasse" value="<?php echo $ci; ?>">
                            <input type="hidden" name="nmatiere" value="<?php echo $nmatiere; ?>">
                            <input type="submit" name="sauvegarder" value="Enregistrer" class="btn btn-primary pull-right">
                            </form>
                </div>
                </div>
                </fieldset><?php
            }
        }
 
    }
} ?>
Après le traitement du premier formulaire, la liste des élèves apparaît avec un champ text devant chaque nom d'élève pour saisir la note de l'élève comme le montre cette deuxième capture d'écran.
Nom : form2.png
Affichages : 343
Taille : 19,5 Ko

Le blocus est que je ne sais pas comment traité les notes de chaque élève après soumission de ce formulaire vu que l'effectif des élèves est variable.
Pour cette capture d'écran on voit 6 élèves mais sa peut être 30 élèves pour une autre classe voir même 45.
J'ai commencé avec ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
if(isset($_POST['sauvegarder'])){  
    $anant=strip_tags($_POST['anant']); $anant=htmlspecialchars($anant);
    $nmois=strip_tags($_POST['nmois']); $nmois=htmlspecialchars($nmois); $nmatiere=strip_tags($_POST['nmatiere']);
    $nmatiere=htmlspecialchars($nmatiere);
    $valid=true;
    if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>";
    }
    if(!preg_match("#^[0-9]{1,2}$#", $nmois) || ($nmois==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner un mois ! </h4></div></div>";
    }
    if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>";
    }
    if(!preg_match("#^[0-9]{1,3}$#", $nmatiere) || ($nmatiere==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une matière ! </h4></div></div>";
    }if(isset($_POST['enregistrer'])){  $anant=strip_tags($_POST['anant']); $anant=htmlspecialchars($anant);
    $nmois=strip_tags($_POST['nmois']); $nmois=htmlspecialchars($nmois); $nmatiere=strip_tags($_POST['nmatiere']);
    $nmatiere=htmlspecialchars($nmatiere);
    $valid=true;
    if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>";
    }
    if(!preg_match("#^[0-9]{1,2}$#", $nmois) || ($nmois==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner un mois ! </h4></div></div>";
    }
    if(!preg_match("#^[0-9]{1,3}$#", $anant) || ($anant==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une année scolaire ! </h4></div></div>";
    }
    if(!preg_match("#^[0-9]{1,3}$#", $nmatiere) || ($nmatiere==0)){
        $valid=false;
        echo"<div class='row'><div class='col-md-12 alert-danger text-center'><h4>Veuillez sélectionner une matière ! </h4></div></div>";
    } 
}
S'il vous plaît, j'ai besoin de vos solutions!