Signaler

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

Posez votre question aldofkr 12Messages postés mardi 25 février 2014Date d'inscription 2 octobre 2017 Dernière intervention - Dernière réponse le 2 oct. 2017 à 17:31 par aldofkr
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
Utile
+0
plus moins
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 :
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

.
aldofkr 12Messages postés mardi 25 février 2014Date d'inscription 2 octobre 2017 Dernière intervention - 2 oct. 2017 à 17:31
ça fonctionne à merveille. merci Jordanne45 pour ta disponibilité
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !