Bonsoir.
Je développe un site pour mon beau-frère qui fait du canard dans le Lot. Je fais du php depuis 3 mois et je me suis, je pense, assez bien débrouillé pour toutes mes pages. Je butte pour récupérer les valeurs (qtte_cmde) entrées par le client dans un formulaire issu d'un foreach à partir d'un objet PDO fetch_assoc.

Voici mon code :
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
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
 
$proj_cmde=array();
$sql = "SELECT prod.id_prod, libelle_prod.libelle_prod, cdmnt_prod.cdmnt_prod, prod.stock_prod, prod.pds_prod, prod.pht_kg_prod, prod.pht_prod, tva.tx_tva FROM libelle_prod,prod,cdmnt_prod,tva WHERE prod.libelle_prod=libelle_prod.id_libelle_prod AND prod.id_cdmnt_prod=cdmnt_prod.id_cdmnt_prod AND prod.cde_tva=tva.cde_tva"; 
 
$list_prod = $dbh -> query($sql); 
 
foreach ($list_prod as $row){
$id_prod = $row[id_prod];
$id_client = substr($_POST[nom_client],0,4).substr($_POST[prenom_client],0,4);
$libelle_prod = $row[libelle_prod];
$cdmnt_pds_prod = ($row[cdmnt_prod].' '.de.' '.$row[pds_prod].' '.g);
$pht_kg_prod = $row[pht_kg_prod];
$pht_prod = $row[pht_prod];
$prix_ttc = ($row[pht_prod]*('1.'.$row[tx_tva]));
$stock_prod = $row[stock_prod];
$qtte_cmde = $_POST[qtte_cmde];
 
$proj_cmde = array(':id_prod'=>$row[id_prod], ':id_client'=>$id_client, ':libelle_prod'=>$row[libelle_prod], ':cdmnt_pds_prod'=>$cdmnt_pds_prod, ':pht_kg_prod'=>$row[pht_kg_prod], ':pht_prod'=>$row[pht_prod], ':qtte_cmde'=>'');
 
print_r($proj_cmde);
 
echo "<input id='id_prod' type='HIDDEN' name='id_prod' value='$row[id_prod]'/>
<input READONLY id='libelle_prod' type='text' size='33' name='libelle_prod' value='$row[libelle_prod]' class='class_form_cmde'/>
<input READONLY id='cdmnt_pds_prod' type='text' size='20' name='cdmnt_pds_prod' value='$cdmnt_pds_prod' class='class_form_cmde'/>
<input READONLY id='pht_kg_prod' type='text' size='12' name='pht_kg_prod' value='$row[pht_kg_prod] €' class='class_form_cmde'/>
<input READONLY id='pht_prod' type='text' size='6' name='pht_prod' value='$row[pht_prod] €' class='class_form_cmde'/>
<input READONLY id='pht_prod' type='text' size='6' name='pttc_prod' value='$prix_ttc €' class='class_form_cmde'/>
<input READONLY id='avis_stock' type='text' size='3' name='avis_stock' value='$row[stock_prod]' class='class_form_cmde'/>
<input id='qtte_cmde' type='text' size='13' name='qtte_cmde' value='' class='class_form_cmde'/><br/>\n";
 
$proj_cmde["qtte_cmde"] = "$_POST[qtte_cmde]";
 
$sql = "INSERT INTO tabl_prov (id_prod,id_client,libelle_prod,cdmnt_pds_prod,pht_kg_prod,pht_prod,qtte_cmde) VALUES ($row[id_prod],$id_client,$row[$libelle_prod],$row[cdmnt_pds_prod],$row[pht_kg_prod],$row[pht_prod],$row[qtte_cmde])";
 
exec($sql);
Quelles que soient les options, je ne récupère toujours que la dernière ligne du tableau (print_r()), et dans cette configuration précise, rien ne s'enregistre dans la table, alors que la syntaxe mysql est correcte (vérifiée sur phpmyadmin avec des données fictives).

Pour la sécurité, je suis en local et axé sur le fonctionnement, chaque chose en son temps !

Merci à l'avance.