Bonjour. Je bute actuellement face à une requête MySQL.

Je dispose de 2 tables : CATEGORIE et SITE.

En simplifiant on a le MLD suivant :

- CATEGORIE (num_cat, nom_cat)
- SITE (num_site, nom_site, #num_cat)

Je souhaiterai faire apparaitre ceci :

{nom_cat1}
------------------------------
- {nom_site1}
- {nom_site2}

{nom_cat2}
------------------------------
- {nom_site3}
- {nom_site4}
Vous voyez le genre ?

Actuellement j'ai pensé faire la requête suivante avec une jointure entre les 2 tables :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
$sql="select * from categorie,site ";
$sql.="where categorie.num_cat=site.num_cat";
$req=mysql_query($sql);
while($tabres=mysql_fetch_array($req))
{
	echo"<h2>".$tabres["nom_cat"]."</h2>";
	echo"<ul>";
	echo"<li>".$tabres["nom_site"]."</li>";
	echo"</ul>";
}
Mais il y a un hic. Cela m'affiche en sortie ceci :

{nom_cat1}
------------------------------
- {nom_site1}

{nom_cat1}
------------------------------
- {nom_site2}

{nom_cat2}
------------------------------
- {nom_site3}
J'ai donc modifier cette requête mais je pense qu'il en existe une beaucoup plus simple que celle-ci mais laquelle :

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
 
$sql="select * from categorie";
$req=mysql_query($sql);
while($tabres=mysql_fetch_array($req))
{
        $num_cat = $tabres["num_cat"];
        $nom_cat = $tabres["nom_cat"];
 
        echo"<h2>".$nom_cat."</h2><ul>";
 
        $sql2="select * from site where num_cat=$num_cat";
        $req2=mysql_query($sql2);
        while($tabres2=mysql_fetch_array($req2))
                echo"<li>".$tabres2["nom_site"]."</li>";
 
 	echo"</ul>";
}
Merci de votre aide.


[Titre édité par Maximilian]