Saluton al cxiuj (petit clin d'oeil à Maljuna Kris)
J'ai deux tables :
users :
id_eleve (int clé primaire)
identifiant (varchar)
psw (varchar)
nom (varchar)
prenom (varchar)
classe (varchar)
compositions :
id_compo (int clé primaire)
id_eleve (int clé étrangère)
date_compo (datetime)
titre_compo (varchar)
note_compo (int)
avis_compo (varchar)
pdf (varchar)
Un formulaire qui est généré de cette manière :
Le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $req = $bdd->query("SELECT DISTINCT `id_eleve`, `identifiant`, `nom`, `prenom` FROM users WHERE `users`.`classe` = '$classe'" );
J'obtiens ça :
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 <form action="" method="POST"> <fieldset> <legend>Eléves</legend> <table id="notes" class="table table-bordered table-striped" style="margin-top: 0;"> <tr> <th>Identifiant</th> <th>Eléve</th> <th>Date</th> <th>DS</th> <th>Note (/20)</th> <th>Appréciation</th> <th>PDF</th> </tr> <?php while($donnees = $req->fetch()){ echo '<tr>'; echo '<td>' . $donnees['identifiant'] . '</td>'; echo '<td>' . $donnees['nom'] . ' ' . $donnees['prenom'] . '</td>'; echo '<td><input type="text" class="form-control" name="date_compo" id="date_compo" placeholder="Date" disabled></td>'; echo '<td><input type="text" class="form-control" name="titre_compo" id="titre_compo" placeholder="Titre du DS"></td>'; echo '<td><input type="text" class="form-control" name="note_compo" id="note_compo" placeholder="Note"></td>'; echo '<td><textarea class="form-control" rows="1" name="avis_compo" id="avis_compo" placeholder="Avis"></textarea></td>'; echo '<td>' . $donnees['pdf'] . '</td>'; echo '</tr>'; } ?> </table> </fieldset> <input type="submit" class="form-control" value="Envoyer"> </form>
Vous pouvez donc voir qu'il existe un ensemble de champs <input>. J'aimerai avoir la possibilité de les remplir et d'insérer tous les résultats dans les tables de la base de données.
Pour sûr, il faut utiliser une boucle. Je pensais d'ailleurs à faire comme suit :
- Déclaration d'une variable qui prendra comme valeur le nombre de ligne rempli, sachant que pour valider une ligne, il faut que tous les champs de cette ligne soient remplis. Mais il n'est pas nécessaire de remplir toutes les lignes pour valider l'envoi des données
- Création d'une boucle for
- Requête SQL pour insérer les informations (INSERT INTO)
J'ai trouvé des solutions sur le net dont une qui correspondait vraiment à ce que je m'imaginais, mais j'ai beau essayé, ça ne fonctionne pas. Et je ne retrouve plus ce fameux code - LE boulet...
Je ne demande pas forcément une réponse toute faite, je veux simplement être aiguillé, est-ce que mon raisonnement est bon ? Est-ce qu'il manque des éléments ?
Partager