Afficher le resultat de ma requête avec pdo [Résolu/Fermé]

Signaler
Messages postés
35
Date d'inscription
mardi 25 février 2014
Statut
Membre
Dernière intervention
30 juillet 2019
-
Messages postés
35
Date d'inscription
mardi 25 février 2014
Statut
Membre
Dernière intervention
30 juillet 2019
-
Bonjour chers ami,

j'ai un soucis avec mon code. d'abord je vous le presente
<?php
$id=array_keys($_SESSION['panier']);
var_dump($id);
$req=$pdo->prepare('SELECT * FROM produits WHERE id = :id ');
$req->execute(array(':id'=>implode(',',$id)));
$p=$req->fetchAll();
var_dump($p);
?>


EDIT : Ajout des balises de code (jordane)

je précise qu'il marche, mais ne me donne pas ce que je veux vraiment. en effet, ma requête doit me donner des produits et ses caractéristiques. pour cela, j'ai fait de sorte qu'il recupère l'id des éléments à rechercher et pour l'utiliser dans ma requête et j'ai aussi utilisé la fonction 'implode()' , mais il retourne seulement le premier produit. pourtant je veux qu'il me retourne tous les produits selectionnés.

bésoin d'aide pour debugger mon code. merci d'avance

1 réponse

Messages postés
29635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 septembre 2020
2 801
Bonjour,

Si ta variable $_SESSION['panier'] contient plusieurs ID ... ce n'est pas un "=" que tu dois utiliser dans ta requête .... mais un IN

Par exemple :

//preparation de la requete
$ids=join("','",array_keys($_SESSION['panier']));
$sql = "SELECT * FROM produits WHERE id IN('".$ids."')";

//execution de la requête
try{
  $req=$pdo->prepare($sql);
  $req->execute();
  $p=$req->fetchAll();
}catch(Exception $e){
   echo "Erreur : ".$e->getMessage();
}

//affichage
if(!empty($p)){
  var_dump($p);
}



Au passage ... merci d'appliquer ceci :
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

.
Messages postés
35
Date d'inscription
mardi 25 février 2014
Statut
Membre
Dernière intervention
30 juillet 2019

ça fonctionne à merveille. merci Jordanne45 pour ta disponibilité