Bonjour,
j'ai créé un formulaire en php. ce formulaire une fois compléter est envoyé dans une bdd.
j'ai de l'autre coté créé un formulaire d'édition qui me renvoi les valeurs de la bdd et que je peux donc modifier.
le formulaire fonctionne bien pour une partie mais une seconde partie n'est pas encore opérationnel.
en fait, j'ai des champs associés à des locuteurs. ces champs correspondent à la table "locuteurs" et il peut en avoir plusieurs.
pour un formulaire je peux avoir plusieurs locuteurs et donc plusieurs champs "id" par exemple.
je veux pouvoir modifier ces données mais ma méthode ne fonctionne pas elle ne prend en compte que le dernier élément du tableau.
voici une partie du code :
formulaire-modification1.php
dans le script ci dessus jaffiche toute les valeurs dépendant du nombre de locuteurs.
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 <?php $requete_locuteurs =mysql_query("SELECT * FROM locuteurs WHERE (`locuteurs`.`id_fiche` = '$id')"); $nombre_loc = 0; while($loc=mysql_fetch_assoc($requete_locuteurs)) { $nombre_loc++; $id_loc=$loc["id"]; echo "<tr><td><b><i>Locuteur $nombre_loc </i></b></td><td bgcolor=\"#006699\"></td></tr>"; echo "<tr><td>Identifiant : </td><td><input type=\"text\" size=\"50\" name=\"id[]\" value=\"$id_loc\"></td></tr>"; } ?>
formulaire-modification2.php
dans le script ci dessus je tente de modifier ma table locuteurs mais ce code ne modifie que la dernière valeur.
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 for ($i=0 ; $i < count($_POST["id"]) ; $i++ ) { $id_loc = addslashes($_POST["id"][$i]); // récupère l'id //requete 2 : table locuteurs $sql2 = "UPDATE locuteurs SET id = '$id_loc' WHERE id_fiche = '$id' " ; } //exécution de la requête SQL: $requete2 = mysql_query($sql2, $cnx) or die( mysql_error() ) ;
si j'ai deux locuteurs et que je modifie le second en inscrivant Paul les deux champs id correspondant à la fiche auront pour valeur Paul.
merci de votre aide
Partager