Effectuer un affichage à partir de deux tables
Posté : 17 oct. 2007, 22:44
Bonsoir à tous,
me revoilà avec un problème que je ne parviens pas à résoudre.
J'ai deux tables dans ma base de données, la première appelée "liste_pays" et la seconde appelée "liste_villes".
La table "liste_pays" contient deux champs, "id" et "pays".
La table "liste_villes" contient trois champs, "id", "id_pays", "ville".
Le but est d'afficher la liste des pays et des villes par ordre alphabétique, mais de façon à éviter que le nom du pays apparaîsse deux fois ou plus si plusieurs villes sont dans le même pays.
Voici donc ma requête SQL et le code associé pour afficher le résultat :
J'ignore si le problème vient de ma requête qui serait mal formulée ou du code qui suit (mauvaise imbrication des fonctions while peut-être ?).
Si quelqu'un a la solution je suis preneur !
me revoilà avec un problème que je ne parviens pas à résoudre.
J'ai deux tables dans ma base de données, la première appelée "liste_pays" et la seconde appelée "liste_villes".
La table "liste_pays" contient deux champs, "id" et "pays".
La table "liste_villes" contient trois champs, "id", "id_pays", "ville".
Le but est d'afficher la liste des pays et des villes par ordre alphabétique, mais de façon à éviter que le nom du pays apparaîsse deux fois ou plus si plusieurs villes sont dans le même pays.
Voici donc ma requête SQL et le code associé pour afficher le résultat :
$requete = ("SELECT liste_pays.pays, liste_villes.ville FROM liste_pays, liste_villes WHERE liste_villes.id_pays = liste_pays.id ORDER BY pays, ville ASC");
$resultat = mysql_query($requete) or die (mysql_error());
while ($selection_1 = mysql_fetch_array($resultat) or die (mysql_error())) {
echo '<strong>'.$selection_1['pays'].'</strong><br />';
while ($selection_2 = mysql_fetch_array($resultat) or die (mysql_error())) {
echo $selection_2['ville'].'<br />';
}
}
De cette façon j'obtiens le résultat suivant :- France
Bordeaux
Lille
Marseille
Nice
Paris
Toulouse
Cardiff
Dublin
Londres
Manchester
J'ignore si le problème vient de ma requête qui serait mal formulée ou du code qui suit (mauvaise imbrication des fonctions while peut-être ?).
Si quelqu'un a la solution je suis preneur !