Requête dans une boucle

Fermé
saf@1 Messages postés 11 Date d'inscription samedi 30 janvier 2016 Statut Membre Dernière intervention 8 février 2016 - 7 févr. 2016 à 19:54
saf@1 Messages postés 11 Date d'inscription samedi 30 janvier 2016 Statut Membre Dernière intervention 8 février 2016 - 8 févr. 2016 à 16:24
Bonjour à tous,

j'aimerais savoir s'il est possible de faire une quelle requête. si oui voyer ce code qui contient une erreur au niveau $ree->execute();.

Ici l'objectif est de faire une boucle qui permettra d'executer une requête en fonction du resultat d'une autre requête. Code:

<?php
   //$dbC....
$ree = $dbC->prepare('SELECT details.id_cmd,details.id_prod,details.qte FROM details,produit_commande WHERE details.id_cmd=produit_commande.id_commande ORDER BY details.id_cmd')or die (print_r($this->_db->errorinfo()));
 $ree->execute();
 $dtls = $ree->fetch(PDO::FETCH_ASSOC);

 while ($dn2 = $ree->fetch(PDO::FETCH_ASSOC))
    {
 $reeq = $dbC->prepare('SELECT nom_produit FROM produit WHERE id_produit=: Id')or die (print_r($this->_db->errorinfo()));
 $reeq->bindParam(':Id', $dn2['details.id_prod']);
 $reeq->execute();
 $nprd = $reeq->fetch(PDO::FETCH_ASSOC);
    }
   
?>




1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
8 févr. 2016 à 12:16
Salut,

C'est fonctionnel mais pas optimisé. Si tu as beaucoup de résultat à ta première requête, l’exécution des requêtes dans la boucle va être relativement long.

L'idéal serait plutôt de faire une jointure afin d'exécuter qu'une seule requête.

Bonne journée
0
saf@1 Messages postés 11 Date d'inscription samedi 30 janvier 2016 Statut Membre Dernière intervention 8 février 2016
8 févr. 2016 à 16:24
Merci man, c'est bien ce que j'ai fais. Tout cela pasce que je n'avais pas une bonne compréhention des jointures.
0