Ajouter plusieurs éléments dans le même tableau
Résolu
Lib76
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je travaille actuellement sur une page de type panier, ou l'utilisateur est censé pouvoir ajouter plusieurs articles. Je souhaite pour ça utiliser un seul tableau qui comprendra tout les produits que l'utilisateur à choisi. Le problème, c'est que pour le moment, je n'arrive à récupérer qu'un seul produit dans mon tableau, les autres s'ajoutent bien dans ma base, mais je ne les récupèrent pas ailleurs ... Voici ce que j'ai déjà fait :
Mes fonctions :
Le traitement de ces fonctions :
Voici également le résultat du débug qui montre ce que contient mon panier :
Il m'affiche comme on le voit correctement le produit ainsi que sa quantité, sauf que j'en ai d'autre et il ne les prends pas du tout dans le tableau, et je n'arrive pas à push les éléments... J'ai pourtant saigné la doc PHP sur les tableaux, mais je n'arrive à rien. Merci d'avance pour votre aide !
Je travaille actuellement sur une page de type panier, ou l'utilisateur est censé pouvoir ajouter plusieurs articles. Je souhaite pour ça utiliser un seul tableau qui comprendra tout les produits que l'utilisateur à choisi. Le problème, c'est que pour le moment, je n'arrive à récupérer qu'un seul produit dans mon tableau, les autres s'ajoutent bien dans ma base, mais je ne les récupèrent pas ailleurs ... Voici ce que j'ai déjà fait :
Mes fonctions :
// Ajouter un produit dans un panier public function addPanier($users_id, $products){ $req = $this->pdo->prepare("INSERT INTO panier(users_id, products) VALUES (?, ?)"); $req->execute([$users_id, serialize($products)]); } // Afficher le panier d'un utilisateur public function getUserPanier($users_id){ $req = $this->pdo->prepare("SELECT * FROM panier WHERE users_id = ?"); $req->execute([$users_id]); $data = $req->fetch(); if(!empty($data->products)){ $data->products = unserialize($data->products); return $data->products ; } else{ return $data->products; } }
Le traitement de ces fonctions :
if (isset($_POST) && !empty($_POST)) { $tab = [$_POST["product_id"] . "a" => ["qt" => $_POST["qt"]]]; $post = $_POST; if (existPanier($post, $panier)) { $index = $_POST["product_id"] . "a"; unset($panier[$index]); $tab2 = array_merge($panier, $tab); $test = existPanier($panier,$post).$ordersModel->addPanier($user->id,serialize([$_POST["product_id"] . "a" => ["qt" => $_POST["qt"]]])); } else { $tab2 = array_merge($panier, $tab); $test = existPanier($panier,$post).$ordersModel->addPanier($user->id,serialize([$_POST["product_id"] . "a" => ["qt" => $_POST["qt"]]])); } } function existPanier($post, $panier) { return isset($post["product_id"]) && array_key_exists($post["product_id"] . "a1", $panier); }
Voici également le résultat du débug qui montre ce que contient mon panier :
Array ( [29a] => Array ( [qt] => 6 ) )
Il m'affiche comme on le voit correctement le produit ainsi que sa quantité, sauf que j'en ai d'autre et il ne les prends pas du tout dans le tableau, et je n'arrive pas à push les éléments... J'ai pourtant saigné la doc PHP sur les tableaux, mais je n'arrive à rien. Merci d'avance pour votre aide !
A voir également:
- Ajouter plusieurs éléments dans le même tableau
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Photoshop elements gratuit - Télécharger - Retouche d'image
3 réponses
Bonjour,
Es-tu sûr que tous tes produits sont enregistrés dans ta table ?
car tu fais :
Donc tu n'envoies qu'un seul produit... celui en POST.
A aucun moment tu ne sembles utiliser ton
Es-tu sûr que tous tes produits sont enregistrés dans ta table ?
car tu fais :
addPanier($user->id,serialize([$_POST["product_id"] . "a" => ["qt" => $_POST["qt"]]]))
Donc tu n'envoies qu'un seul produit... celui en POST.
A aucun moment tu ne sembles utiliser ton
$tab2 = array_merge($panier, $tab);
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
à quel endroit as-tu placé le debug?
il faut visiblement en placer un autre plus tôt, pour découvrir où tu perds le contenu du panier.
à quel endroit as-tu placé le debug?
il faut visiblement en placer un autre plus tôt, pour découvrir où tu perds le contenu du panier.