8791 sujets

Développement web côté serveur, CMS

Bonjour à tous !

Me voilà face à un problème d'affichage sur mon site incluant des données de la base de données :

J'ai deux tables : l'une des pays (ID_pays, Nom_pays), l'autre des villes (ID_ville, Nom_ville, ID_pays) => liée l'une à l'autre par ID_pays

je souhaite afficher cela de la manière suivante :

sur une première page, on arrive avec dans le menu les différents pays avec une requête SELECT des pays :
France
Allemagne
Espagne
...

une fois qu'on clique sur France, on arrive sur une nouvelle page, et je souhaiterais qu'entre France et Allemagne s'ouvre les villes de ce pays :

France
Paris
Lyon

Allemagne
Espagne


Et quand on clique sur Allemagne :
France
Allemagne
Munich
Berlin

Espagne

Voilà mon code qui "fonctionne" à moitié puisque quelque soit la valeur de $id_pays, il l'affiche systématiquement entre France et Allemagne !

	
$requete1 = "SELECT * FROM pays" ;
$res1 = mysql_query ($requete1) or die ($requete1.":".mysql_error()) ;
					   
$requete2 = "SELECT * FROM ville WHERE ID_pays = $id_pays" ;
$res2 = mysql_query ($requete2) or die ($requete2.":".mysql_error()) ;
				  	  
while ($resultat1 = mysql_fetch_array ($res1)) {
    echo $resultat1['Nom_pays'].'<br/>' ;
    if ($id_pays) {
       while ($resultat2 = mysql_fetch_array ($res2)) {
          echo $resultat2['Nom_ville'].'<br/>' ;
       }
}


Est-ce que quelqu'un aurait une idée pour que ce soit affiché en dessous de chaque $id_pays ?

Merci d'avance !!
Modifié par louloute (10 Jul 2011 - 20:18)