Afficher le resultat de ma requête avec pdo

Résolu/Fermé
aldofkr Messages postés 35 Date d'inscription mardi 25 février 2014 Statut Membre Dernière intervention 30 juillet 2019 - Modifié le 2 oct. 2017 à 16:21
aldofkr Messages postés 35 Date d'inscription mardi 25 février 2014 Statut Membre Dernière intervention 30 juillet 2019 - 2 oct. 2017 à 17:31
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

jordane45 Messages postés 36339 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 septembre 2022 4 352
2 oct. 2017 à 16:26
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://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

.
0
aldofkr Messages postés 35 Date d'inscription mardi 25 février 2014 Statut Membre Dernière intervention 30 juillet 2019
2 oct. 2017 à 17:31
ça fonctionne à merveille. merci Jordanne45 pour ta disponibilité
0