Bonjour à tous,
J'ai un soucis avec une boucle foreach et une requete SQL dans cette boucle.
Voici mon approche:
Je fais une requête SQL sur une table où je sélectionne 10 champs en fonction d'un ID.
Il arrive donc qu'en fonction de le l'ID il n'y ai que 2 champs sur 10 rempli, ou 7, ou 4 ....
De cette requête je fais un sqlsrv_fetch_array.
J'applique ensuite un foreach sur ce tableau.
Dans mes premiers test je faisais un echo pour voir si le tableau était bien parcouru et que les champs remplis apparaissaient bien.Tout marche jusque là.
J'ai donc modifié ma boucle pour qu'au lieu de faire un echo. Je fasse une requête SQL en fonction de la case du tableau que le foreach parcours.
Et là malheureusement ma requête ne s’exécute qu'une seule fois alors que mon tableau comporte 4 entrées.
Est-ce parce que le foreach n'execute qu'une seule fois la requête et zappe le reste?
Voici un bout de mon code, dès fois que j'ai fais quelque chose de travers...
Merci d'avance de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $sql_associe = "SELECT Champ12, Champ13, Champ14, Champ15, Champ16, Champ17, Champ18, Champ19, Champ20, Champ21 FROM Produit WHERE Ref_Constructeur='".$pdt."' AND Champ5='Oui'"; $envoi_associe = sqlsrv_query($connection, $sql_associe); $contenu_associe = sqlsrv_fetch_array( $envoi_associe, SQLSRV_FETCH_ASSOC); foreach ($contenu_associe as $produit_associe) { //echo $produit_associe."<br />\n"; $sql_pdt_associe= "SELECT Nom_Produit, Descriptif, Prix_Vente_Euro, Champ10, Ref_Constructeur FROM Produit WHERE Champ5='Oui' and Ref_Constructeur='".$produit_associe."'"; $envoi_pdt_associe = sqlsrv_query($connection, $sql_pdt_associe); while( $row_pdt_asso = sqlsrv_fetch_array( $envoi_pdt_associe, SQLSRV_FETCH_ASSOC)) { // Affichage des champs voulu } }
Partager