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 :
$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
On peut ainsi constater que le pays "Grande-Bretagne" ne s'affiche pas, alors qu'il devrait s'intercaler entre les villes "Toulouse" et "Cardiff".
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 !
