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 :

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'];
		}	
	}
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...

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