Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/01/2011, 19h33   #1
Invité de passage
 
Denis Reb
Inscription : décembre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Denis Reb
Âge : 56

Informations forums :
Inscription : décembre 2010
Messages : 6
Points : 0
Points : 0
Par défaut récupérer et ajouter des valeurs après un formulaire issu de foreach

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 :
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.
Cosmopolitan51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 23h17   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il faut indexer tes champs, sinon ils ont tous les meme "name"
Code :
1
2
3
4
 
echo '<input id="id_prod" type="HIDDEN" name="id_prod[' . $i .']" value="' . $row[id_prod] . '"/>';
....
$i++;
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 19h48   #3
Invité de passage
 
Denis Reb
Inscription : décembre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Denis Reb
Âge : 56

Informations forums :
Inscription : décembre 2010
Messages : 6
Points : 0
Points : 0
Merci de ta réponse Vincent.
J'ai saisi la démarche, à laquelle je n'avais pas pensé.
J'ai essayé rapidement, trop sans doute et cela ne marche pas. Mais j'ai la piste et je vais m'en sortir.
Merci encore.
Denis
Cosmopolitan51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h57.


 
 
 
 
Partenaires

Hébergement Web