imbrication de foreach [resolu] - PHP - Programmation
Marsh Posté le 15-11-2017 à 19:04:17
Ce n'est franchement pas le code de l'année :
Bref, déjà, je pense qu'il faudrait (ré)initialiser $organic_prod à chaîne vide en début du premier foreach. ($organic_prod = ''; après la ligne foreach ($_POST['idProduit'] as $key => $idProduit){)
Et pour la série de virgules où elles sont seules, c'est parce qu'une des deux requêtes ne renvoie rien ?
EDIT : il y a un truc qui ne va pas. Ce n'est pas plutôt name="pID['.$organic['organic_id'].']" au lieu de name="pID['.$organic_products['products_id'].']" (mais c'est probablement la même chose ?) et foreach ($_POST['pID'][$key] as $pID){ (ou foreach ($_POST['pID'][$idProduit] as $pID){ étant donné que $idProduit == $key - du moins en théorie) au lieu de foreach ($_POST['pID'] as $pID){ ? Parce que sinon tes paniers n'ont pas vraiment de corrélation avec les produits d'où les virgules qui traînent (tu parcours tous les produits indépendamment de leur panier donc quand tu tapes sur les produits d'un autre panier, ils n'existent pas et génèrent ces virgules d'autant qu'il n'y a pas non plus de test pour vérifier que tes fetch_array renvoient bien une ligne)
Code :
|
?
Marsh Posté le 16-11-2017 à 12:36:06
Bonjour,
Un grand merci à toi d'avoir pris le temps de regarder ma requete.
N'ayant jamais eu de formation au php, je voyais où était le problème mais je m'y perdais.
Je te dits bravo car mon code est un peu voir complètement illisible et incompréhensible.
En rapide mais pas éfficace,
j'ai rajouté en début de requète :
Code :
|
qui me supprime les doublons.
ainsi que :
Code :
|
pour régler le problème des retours vide.
Merci de m'avoir ouvert les yeux.
Je vais tenter d'appliquer tes conseils et reprendre mon développement en me basant sur ton codage
et en faisant attention aux incohérences et aux injections sql.
En tout cas MERCI, ça m'a dépanner après m'être arraché les cheveux pendant 5 heures.
Hugo_064
Marsh Posté le 15-11-2017 à 18:29:34
Bonjour à tous,
Je viens vers vous pour solliciter vos compétences suite à un problème rencontré.
Je suis en train de créer un formulaire pour réserver un/des paniers de bouffe avec choix du contenu.
Pour le formulaire de choix :
panier 1 (input checkbox pour sélectionner ce panier)
quantité (input number pour ce panier)
liste des produits dans ce panier (input checkbox pour sélectionner les produits)
panier 2 (input checkbox pour sélectionner ce panier)
quantité (input number pour ce panier)
liste des produits dans ce panier (input checkbox pour sélectionner les produits)
panier 3 (input checkbox pour sélectionner ce panier)
quantité (input number pour ce panier)
liste des produits dans ce panier (input checkbox pour sélectionner les produits)
et pour envoyer tout ça dans le contenu d'un mail :
Je souhaite obtenir cela :
"nom du panier" x "quantité" : "liste des id de produits"
Le résultat obtenu avec ma formule :
Panier n°2 x 1 : , , , 4363, 4365, 4404, , ,
Panier n°3 x 1 : , , , 4363, 4365, 4404, , , , , , , , , 1239, 1943, 536
Le résultat souhaité :
Panier n°2 x 1 : 4363, 4365, 4404
Panier n°3 x 1 : 1239, 1943, 536
Le problème vient de mon imbrication de foreach.
Pouvez vous me dire ce qui ne va pas dans ma formule ou m'orienter vers une autre solution.
Merci à vous de prendre le temps de regarder.
Bonne fin de journée
Hugo_064
Message édité par hugo_064 le 16-11-2017 à 12:36:35