Bonjour à tous!
J'ai créé une base de données Mysql qui contient 16 tables contenant des informations à propos d'entreprises.
J'ai créé une interface PHP pour l'interroger. Il y a donc un formulaire d'interrogation pour retrouver toutes les informations d'une entreprise à partir de son nom, en somme ressortir toutes les infos contenues dans ma base.
Mon problème est que j'ai la sensation que lorqu'il y a plusieurs lignes de résultats d'une requête, elles ne sont pas toutes être traitées. Par exemple, une entreprise peut avoir plusieurs produits. Voici donc mon code épuré afin de faciliter la compréhension :
J'ai laissé les lignes d'echo de test. Mon 1er echo affichant le product id ne s'affiche qu'une seule fois alors qu'en réalité il y a 5 produits...
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 //Product tables $prodidQuery="SELECT Product_id_product FROM Company_has_Product WHERE Company_id_company=$company_id"; $resultat=mysql_query($prodidQuery) or die(mysql_error()); $resultat_numrows=mysql_num_rows($resultat);//donne le nombre de ligne while($row=mysql_fetch_array($resultat)) { $product_id=$row['Product_id_product']; echo "product id vaut $product_id\t"; $prodQuery="SELECT * FROM Product WHERE id_product=$product_id"; $resultat=mysql_query($prodQuery) or die(mysql_error()); $nbproduits=mysql_num_rows($resultat);//donne le nombre de ligne while($row=mysql_fetch_array($resultat)) { $champ1=$row['champ1']; $champ2=$row['champ2']; //Assay table $hasAssayQuery="SELECT Assay_id_assay FROM Assay_has_Product WHERE Product_id_product=$product_id"; $resultat=mysql_query($hasAssayQuery) or die(mysql_error()); $resultat_numrows=mysql_num_rows($resultat);//donne le nombre de ligne while($row=mysql_fetch_array($resultat)){ $assay_id=$row['Assay_id_assay']; echo "assay id vaut $assay_id\n"; $assayQuery="SELECT * FROM Assay WHERE id_assay=$assay_id"; $resultat=mysql_query($assayQuery) or die(mysql_error()); $resultat_numrows=mysql_num_rows($resultat);//donne le nombre de ligne while($row=mysql_fetch_array($resultat)){ $champ3=$row['champ3']; $champ4=$row['champ4']; } } echo "swot id vaut $swot_id\n"; //SWOT Table $swotQuery="SELECT * FROM SWOT WHERE id_SWOT=$swot_id"; $resultat=mysql_query($swotQuery) or die(mysql_error()); $resultat_numrows=mysql_num_rows($resultat);//donne le nombre de ligne while($row=mysql_fetch_array($resultat)){ $champ5=$row['champ5']; $champ6=$row['champ6']; } }
Je ne sais pas si j'ai été très claire donc n'hésitez pas à me poser des questions. Aussi toute optimisation ou conseil de code est le bienvenu
Merci d'avance
Partager