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


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>";
 
 
 
			}
 
			?>
dans le script ci dessus jaffiche toute les valeurs dépendant du nombre de locuteurs.

formulaire-modification2.php


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() ) ;
dans le script ci dessus je tente de modifier ma table locuteurs mais ce code ne modifie que la dernière valeur.
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