Récupération plusieurs variables
caro__48
Messages postés
242
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai actuellement deux pages. Une qui affiche des données depuis une requete sql, (ex: pour l'instant j'ai trois lignes) Sous forme de fomulaire et la seconde qui exécute une nouvelle requête.
Ma requete en page 2 s'effectue bien mais je ne récupère que la première ligne de ma page 1.
Il doit falloir faire une boucle mais je ne vois pas comment.
Quelqu'un peut-il m'aider?
Code page 1: (Affichage des données)
Code de la page2 (récupération et insert)
l'informatique est né pour nous faire réfléchir....
J'ai actuellement deux pages. Une qui affiche des données depuis une requete sql, (ex: pour l'instant j'ai trois lignes) Sous forme de fomulaire et la seconde qui exécute une nouvelle requête.
Ma requete en page 2 s'effectue bien mais je ne récupère que la première ligne de ma page 1.
Il doit falloir faire une boucle mais je ne vois pas comment.
Quelqu'un peut-il m'aider?
Code page 1: (Affichage des données)
while ($val = mysql_fetch_object($requete1)) { ?> <tr> <input type="hidden" name="id_adh" value="<?php echo $val->id_adh?>"/> <td align="center" > <input type="hidden" name="nom_adh" value=" <?php echo $val->nom_adh?>"/> <?php echo $val->nom_adh?></b> </td> <td align="center"> <input type="hidden" name="nom_pro"value="<?php echo $val->nom_produit?>"/> <?php echo $val->nom_produit?> </td> etc etc... <?php } ?>
Code de la page2 (récupération et insert)
<?php $id_adh =$_POST['id_adh']; $qt_cde = $_POST['qt_cde']; $date_commande =$_POST['date']; $id_produit = $_POST['produit']; $etat = $_POST['etat']; $PVC =$_POST['PVC']; $PA =$_POST['PA']; $Date_L = $_POST['DL']; $logo = $_POST['logo']; $saisie_adh =$_POST['qt_commande']; $requete1 =mysql_query ("INSERT INTO historique_commandes (`id_adh`, `id_produit`, `PA`, `PVC`, `Saisie_adh`, `qt_commande`, `Etat`, `date_livraison`, `fournisseur`, `date_commande`) VALUES ('".$id_adh."', '".$id_produit."', '".$PA."', '".$PVC."', '".$saisie_adh."', '".$qt_cde."', '".$etat."', '".$Date_L."','".$logo."','".$date_commande."')") or die ("Problème Réseau, veuillez contacter la centrale. Erreur = ".mysql_error());
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
l'informatique est né pour nous faire réfléchir....
A voir également:
- Récupération plusieurs variables
- Récupération de déchets - Guide
- Convertisseur récupération de texte - Guide
- Recuperation video youtube - Guide
- Récupération message whatsapp - Guide
- Recuperation gmail - Guide
3 réponses
Bonjour,
1 - Je ne vois pas l'écriture ternaire pour la récupération des variables
2 - Tu utilises l'ancienne extension mysql (considérée comme obsolète).
Je t'invite à lire ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
3 - Si tu crées des inputs dynamiquement... il faut donc les traiter comme des array...
pour cela il faut que tu ajoutes des "[]" dans leurs noms
Ensuite tu pourras faire des boucles dessus.
1 - Je ne vois pas l'écriture ternaire pour la récupération des variables
$id_adh =isset($_POST['id_adh'])?$_POST['id_adh']:'';
2 - Tu utilises l'ancienne extension mysql (considérée comme obsolète).
Je t'invite à lire ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
3 - Si tu crées des inputs dynamiquement... il faut donc les traiter comme des array...
pour cela il faut que tu ajoutes des "[]" dans leurs noms
<input type="hidden" name="id_adh[]" value="<?php echo $val->id_adh?>"/>
Ensuite tu pourras faire des boucles dessus.
Ben j'ai essayer mais je n'arrivai pas a faire mon foreach.. En fait j'ai fait 2 tests.
Page 1
Page 2:
Mais le résultat avec ça c'est:
Notice: Undefined index: in C:\Program Files (x86)\EasyPHP-12.1\www\Systeme_Achat_Nvlle_version_10_2014\AdMiN062014\EXPORT\transerft_HisT0r1que\Requete_insert_into.php on line 48
Warning: Invalid argument supplied for foreach() in C:\Program Files (x86)\EasyPHP-12.1\www\Systeme_Achat_Nvlle_version_10_2014\AdMiN062014\EXPORT\transerft_HisT0r1que\Requete_insert_into.php on line 48
Du coup je me suis dit qu'il fallait mettre un argument dans les [] de la page 1 pour le spécifier dans le foreach..
Page 1
<input type="hidden" name="id_adh[]" value="<?php echo $val->id_adh?>"/>
<td align="center" >
<b style="color:#2b8dd1";>
<input type="hidden" name="nom_adh[]" value=" <?php echo $val->nom_adh?>"/> <?php echo $val->nom_adh?></b>
</td>.....
Page 2:
$ligne['id_adh'] = isset($_POST['id_adh']) ? $_POST['id_adh'] : '';
$ligne['qt_cde'] = isset ($_POST['qt_cde']) ? $_POST['qt_cde'] : '';
$ligne['date_commande'] = isset ($_POST['date']) ? $_POST['date'] : '';
$ligne['id_produit'] = isset ($_POST['id_produit']) ? $_POST['id_produit'] : '';
$ligne['etat'] = isset ($_POST['etat']) ? $_POST['etat'] : '';
$ligne['PVC'] = isset ($_POST['PVC']) ? $_POST['PVC'] : '';
$ligne['PA'] = isset ($_POST['PA']) ? $_POST['PA'] : '';
$ligne['Date_L'] = isset ($_POST['DL']) ? $_POST['DL'] : '';
$ligne['logo'] = isset ($_POST['logo']) ? $_POST['logo'] : '';
$ligne['saisie_adh'] = isset ($_POST['qt_commande']) ? $_POST['qt_commande'] : '';
print_r($_POST);
foreach( $_POST['']as $ligne) {
$requete1 =mysql_query ("INSERT INTO historique_commandes (`id_adh`, `id_produit`, `PA`, `PVC`, `Saisie_adh`, `qt_commande`, `Etat`, `date_livraison`, `fournisseur`, `date_commande`) VALUES ('". $ligne['id_adh'] ."', '".$ligne['id_produit']."', '".$ligne['PA']."', '".$ligne['PVC']."', '".$ligne['saisie_adh']."', '".$ligne['qt_cde']."', '".$ligne['etat']."', '".$ligne['Date_L']."','".$ligne['logo']."','".$ligne['date_commande']."')") or die ("Problème Réseau, veuillez contacter la centrale. Erreur = ".mysql_error());
Mais le résultat avec ça c'est:
Notice: Undefined index: in C:\Program Files (x86)\EasyPHP-12.1\www\Systeme_Achat_Nvlle_version_10_2014\AdMiN062014\EXPORT\transerft_HisT0r1que\Requete_insert_into.php on line 48
Warning: Invalid argument supplied for foreach() in C:\Program Files (x86)\EasyPHP-12.1\www\Systeme_Achat_Nvlle_version_10_2014\AdMiN062014\EXPORT\transerft_HisT0r1que\Requete_insert_into.php on line 48
Du coup je me suis dit qu'il fallait mettre un argument dans les [] de la page 1 pour le spécifier dans le foreach..
J'ai fait ça entre temps pour la récupération de mes variables:
$id_adh = isset($_POST['id_adh[]']) ? $_POST['id_adh[]'] : '';
$qt_cde = isset ($_POST['qt_cde[]']) ? $_POST['qt_cde[]'] : '';
$date_commande = isset ($_POST['date[]']) ? $_POST['date[]'] : '';
$id_produit = isset ($_POST['id_produit[]']) ? $_POST['id_produit[]'] : '';
$etat = isset ($_POST['etat[]']) ? $_POST['etat[]'] : '';
$PVC = isset ($_POST['PVC[]']) ? $_POST['PVC[]'] : '';
$PA = isset ($_POST['PA[]']) ? $_POST['PA[]'] : '';
$Date_L = isset ($_POST['DL[]']) ? $_POST['DL[]'] : '';
$logo = isset ($_POST['logo[]']) ? $_POST['logo[]'] : '';
$saisie_adh = isset ($_POST['qt_commande[]']) ? $_POST['qt_commande[]'] : '';
(donc j'ai écouté tes conseils)
En ce qui concerne l'ancienne extension, j'ai bien lu le doc. Mais pour l'instant il faut vraiment que j'arrive a faire fonctionner ma requete. Il fois que cela marchera je travaillerai en local pour faire évoluer en une bonne version.
Je suis en train d'essayer de mettre les [] dans leurs noms.
Il faut rien que je mette dans les []? Car pour l'instant cela retourne des variables à 0...
et dans ma page 2
Mais il me dit que mes index ne sont pas définis!
Notice: Undefined index: logo in C:\Program File.... Sauf pour le 1er id_adh qu'il prend en compte:
Résultat de la requete à l'affichage:
INSERT INTO historique_commandes (`id_adh`, `id_produit`, `PA`, `PVC`, `Saisie_adh`, `qt_commande`, `Etat`, `date_livraison`, `fournisseur`, `date_commande`) VALUES ('27', '', '', '', '', '', '', '','','')