Salut et bon dimanche à tous.

Je suis en train d'essayer un script pour faire la mise à jour sur plusieurs enregistrement provenant d'une même table à travers un formulaire sur une seule action.

Voici le code du form (quelques balises html en moins):

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
<form method="post" action="modif.php" enctype="multipart/form-data">
<?php
$link = mysql_connect($hostname, $username, $password);
$sql="SELECT * FROM matable WHERE type='menu' " ;
$a = mysql_db_query($database, $sql);
while ($b=mysql_fetch_row($a)){
$cpt++;
?>
<input name="id" type="hidden" id="id" value="<? echo $b[0] ?>">
<input name="nom" type="text" id="nom" value="<? echo $b[2] ?>">
<input name="desc" type="text" id="desc" value="<? echo $b[4] ?>">
<input name="prix" type="text" id="prix" value="<? echo $b[3] ?>">
 
<? 
} 
?>
</form>
Et le code du fichier d'update "modif.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
<?php require("../connex.php"); ?>
 
if (isset($_POST['id'])) {
$id = $_POST['id'];
$nom = $_POST['nom'];
$prix=$_POST['prix'];
$desc=$_POST['desc'];
 
foreach ($_POST['id']  as $valeur) {
$requete = "UPDATE matable SET nom='$nom[$valeur]', prix='$prix[$valeur]', desc='$desc[$valeur]' WHERE id = $valeur";
 $result = mysql_query($requete);
 }
}
 
$link = mysql_connect($hostname, $username, $password);
$result = mysql_db_query($database, $requete);
mysql_close($link); 
?>

Mais voici le message d'erreur que me renvoie la requète:
"Warning : invalid argument supplied for foreach() in ..."
la ligne d'erreur étant celle-là:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
foreach ($_POST['id']  as $valeur) {
Si quelqu'un d'entre vous avait une solution, ça me dépannerait super!