plusieurs insertions à partir d'un tableau
sur une premiere boucle j'ai plusieurs affichage,
j'ai aussi plusieurs case a cocher donc plusieurs séries de valeur ...
j'envoie ma clef dans un hidden ...
Code:
1 2
|
echo "<input type='hidden' value='$id_BL_ext' name='id_BL_ext[]'>"; |
que je récupère ainsi :
Code:
1 2 3
|
foreach ($_POST['id_BL_ext'] as $id_BL_ext)
{ |
suivie d'une insertion mysql ...
Code:
1 2 3 4
|
$requete1 = "INSERT INTO traction (PF,remorque,shipment,date_traction,origine,pal,id_BL_ext)
VALUES ('$PF_new', '$traction_new', '$shipment', '$date', 'Affret', '$pal','id_BL_ext')";
$result1 = mysql_query ($requete1) or die ("requette 1 invalide"); |
mais je n'ai que la derriere serie dans ma base ...
ou est l'erreur ?
merci par avance.
il manque encore quelque chose ...
dans la saisie :
Code:
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
|
// form
echo "<td><form method='post' name='saisi' action='./insert/insert_AFF_traction.php'>";
//affichage de la PF actuelle
echo "<select imput type='text' name='PF' value='PF' ><option value='$row->PF'>$row->PF";
// toute les PF :
$req_liste_PF="SELECT DISTINCT PF FROM route ORDER BY PF ASC";
$result_liste_PF = mysql_query($req_liste_PF) or die ('req_liste_RG avortee');
while ($row = mysql_fetch_object ($result_liste_PF))
{echo "<option value='$row->PF' >$row->PF" ;}
echo "</select></td>";
// choix remorque :
echo "<td width='20%'><select imput type='text' name='tract' ><option value=''><option value='-1'>-1<option value='-2'>-2<option value='-3'>-3<option value='-4'>-4<option value='-5'>-5<option value='-6'>-6</select>";
echo "</td>";
// infos conditionnement
echo "<td width='20%' ></p><select input type='text' name='pal'><option value='vrac'>vrac";
// extraction des pals
$req_liste_Pal="select DISTINCT(pal) from traction where pal <> 'NC' ORDER BY pal ASC";
$result_liste_Pal = mysql_query($req_liste_Pal) or die ("req_liste_Pal avortee");
while ($row_rz = mysql_fetch_object ($result_liste_Pal))
{echo "<option value='$row_rz->pal'><p class='v1'>$row_rz->pal</p>";}
echo "<input type='hidden' value='$shipment' name='shipment'>";
echo "<input type='hidden' value='$id_BL_ext' name='id_BL_ext[]'>";
echo "</select></td></tr>";
//echo $id_BL_ext ; |
L'echo $id_BL_ext me rend bien les differentes valeurs
Récupération :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
foreach ($_POST['id_BL_ext'] as $donnee)
{
echo $donnee['trac'] , $_POST['id_BL_ext'] , exit ;
/*
$requete1 = "INSERT INTO traction
(PF,remorque,shipment,date_traction,origine,pal,id_BL_ext)
VALUES ($donnee['PF_new'],$donnee['trac'],$donnee['shipment'],'$date', 'Affret',$donnee['pal'],$donnee['id_BL_ext'])";
$result1 = mysql_query ($requete1) or die ("requette 1 invalide");
*/
} |
l'echo $donnee me rend le chiffre 8 et ce quel que soit le nom, tract, pal ou autre.
l'echo du POST me rend : Array
et bien sur une "syntax error" derriere sur l'insert.
si je traite avec des $_POST[''] sans le foreach, je récupère bien la derrière ligne saisi,
Il me serait utile de comprendre comment récupérer les autres ...
8O quelque chose m"échappe, merci de vos suggestions
Bon, j'ai mis un LIMIT 1 sur mon select, abandonné l'idee du while,
j'ai un header qui revient sur la page avec condition de présence.
je traite ainsi les lignes 1 par une et ça fonctionne bien.
A une autre fois.