Comment modifier plusieurs enregistrement d'une table depuis un formulaire ?????

WRInaute discret
Bonjour,
j'aimerais modifier plusieurs enregistrements d'une table de ma base de données depuis un formulaire.
j'arrive a faire la premier boucle pour afficher les enregistrements a modifier, mais la deuxieme 'modification' j'arive pas.
et je ne trouve vraiment pa comment l'on fait!!! Merci beaucoup !!!
 
WRInaute discret
voila la premeier fonction

Code:
	  echo "<table border=1 align=center>";
    	  echo "<tr><td align=center colspan=2><form method=\"post\" name=\"post\" action=\"page_modifier.php\">modifier les enregistrements</td></tr>";
	  echo "<tr><td>id</td><td>titre</td></tr>";
	   $result9 = $db->sql_query("SELECT * from livre");
	   while($row9 = $db->sql_fetchrow($result9)) {
	   $id = intval($row9['id']);
	   $titre = stripslashes($row9['titre']);
	   echo "<tr><td>$id</td>";
	   echo "<td><INPUT type=text name=\"titre\" value=\"$titre\" size=\"20\"></td></tr>";
	   }
    	  echo "<tr><td colspan=2><input type=\"hidden\" name=\"l_op\" value=\"modifiers\">";
    	  echo "<input type=\"submit\" value=\"modifier\">&nbsp;";
	  echo "</form>";
	  echo "</td></tr></table>";
ca donne
aaawx.jpg


maintenant j'ai besoin la 2eme fonction qui fait la modification
 
WRInaute impliqué
Salut,
Déclare n=0 en début de fonction. Donne un id à chaque champ sous la forme "txt_titre[n]" (pour le titre) et "txt_id[n]" (pour l'id), incrémente n à chaque nouvel enregistrement.
Puis, après soumission, tu récupères txt_titre et txt_id avec $_POST
Tu obtiens donc un tableau où txt_id[n] = id à modifier par la valeur txt_titre[n]
(update table livre set titre='$txt_titre[n]' where id='txt_id[n]' en gros)
Plus qu'à enrober le tout d'un peu de PHP / MySQL :)
J'espère avoir été clair...
 
WRInaute discret
merci Schwarzer pour ta reponse,
c'est clair, mais j'ai pas compris cette ligne
Schwarzer Stern a dit:
Tu obtiens donc un tableau où txt_id[n] = id à modifier par la valeur txt_titre[n]
tableau = table hml ???
 
WRInaute impliqué
Non, une chaîne PHP que tu exploites par exemple pour txt_titre[n] avec
Code:
$txt_titre=$_POST['txt_titre'];
Après, $txt_titre[0] sera égal à "ghhhhhhhhh" (première valeur), $txt_titre[1] = dddddddddd, etc.
 
WRInaute impliqué
Donc là c'est une partie du code qui devra figurer dans la page de traitement (php) :
Code:
$txt_id=$_POST['txt_id'];
$txt_titre=$_POST['txt_titre];

for($n=0;$n<count($txt_id);$n++){
 $titre=$txt_titre[$n];
 $id=$txt_id[$n];
 $req = $db->sql_query("update livre set titre='".$titre ."' where id='".$id ."'");
}

Tu peux l'améliorer pour supprimer une entrée dont le titre serait vide par exemple.
Je te conseille de passer l'input de l'id (dans ton formulaire) en hidden ou en readonly pour qu'il ne puisse être modifié.
J'espère que ça va fonctionner ^^
 
Discussions similaires
Haut