Simplification de ma requête MySQL
Posté : 24 janv. 2006, 19:54
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 :
Actuellement j'ai pensé faire la requête suivante avec une jointure entre les 2 tables :
celle-ci mais laquelle :
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 :
Vous voyez le genre ?{nom_cat1}
------------------------------
- {nom_site1}
- {nom_site2}
{nom_cat2}
------------------------------
- {nom_site3}
- {nom_site4}
Actuellement j'ai pensé faire la requête suivante avec une jointure entre les 2 tables :
$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 :J'ai donc modifier cette requête mais je pense qu'il en existe une beaucoup plus simple que{nom_cat1}
------------------------------
- {nom_site1}
{nom_cat1}
------------------------------
- {nom_site2}
{nom_cat2}
------------------------------
- {nom_site3}
celle-ci mais laquelle :
$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.