Bonjour!
Je vous explique le problème, je crée un site dans lequel l'utilisateur peut choisir plusieurs produits, pas de problème, ils les cochent et une page récapitule les informations. Pour chaque produits qu'il a choisi, il est possible de mettre une quantité:
Par exemple, je veux deux produits "a", et trois produits "y".
Le résultat doit être stocké dans une base de données. Pour insérer les produits, aucun problème, par contre, pour y associer une quantités, cela devient difficile:
Code pour récupérer l'identifiant de mes produits das un tableau:(inclus dans une boucle while qui liste mes produits)
<input type="hidden" name="IdProduit[]" value=<?php echo $donnees['IdProduit'];?>>
Code permettant de récupérer la quantités(celle ci s'incrémente grâce à un bouton plus et moins):
<input type="text" name="quantites[]" style="width:15px;height:11px;" value="1">
Je reprécise, que avant de gérer la quantités, tous mes produits s'insérait correctement dans la base de données.
Maintenant l'extrait de code de ma page qui insère le résultat ainsi que les boucle qui extrait les valeurs des tableaux:
$IdProduit ='';
$quantites ='';
//on boucle
for ($i=0;$i<count($_POST['IdProduit']);$i++)
{
//on concatène
$IdProduit .= $_POST['IdProduit'][$i].'|';
}
$explore = explode('|',$IdProduit);
//QUANTITES
//on boucle
for ($i=0;$i<count($_POST['quantites']);$i++)
{
//on concatène
$quantites .= $_POST['quantites'][$i].'|';
}
$exploration = explode('|',$quantites);
foreach($explore as $valeur)
{
if(!empty($valeur))
{
foreach($exploration as $value)
{
if(!empty($value))
{
$sql = $bdd->exec("INSERT INTO reservation (DateReservation, HeureReservation, MinuteReservation, NomCli ,IdProduit, Quantites, PrixTotal)
VALUES ('$Date','$HeureReservation', '$MinuteReservation', '$NomCli', '$valeur', '$value', '$prix')") ;
}
}
}
}
L'éxecution de ce code me renvoi dans ma base de données, par exemple si l'on a choisi produit "a" quantites=3 et produit "b" quantites=2:
produit "a" quantités=3;
produit "a" quantités=2;
produit "b" quantités = 3;
produit "b" quantités = 2;
Je comprend tout à fait pourquoi le résultat est ainsi, étant donné que j'ai un foreach imbriqué dans un autre foreach, mais je ne vois vraiment pas comment faire autrement...
Merci d'avance, et si ce poste aurait du être dans php avancé, faite moi savoir!