affichage resultats d'une requete sql sans doublons

Petit nouveau ! | 9 Messages

21 juin 2013, 12:53

bonjour voila ,je viens vers vous pour m'aider a trouver solution a mon probleme .
j'ai une requete sql qui m'affiche les villes d'une zone
<?php
						
						$query=mysql_query("
                        select * from  zone_livraison order by ville desc limit 4 
                        ");
                        
                        while($data=mysql_fetch_array($query)){
                        echo '<a href="index.php?page=profile_r&ville='.$data['ville'].'">>'.$data['ville'].'</a><br/>';
						}
						?>
mon proble c'est que je veu afficher le nom de la ville qu'une seule fois , sachant que plusieurs zone appartienent au méme ville.
j'espere avoir bien expliquer mon souci .
merci d'avance

Mammouth du PHP | 571 Messages

21 juin 2013, 13:25

bonjour,

c'est plutôt la modélisation de ta bd qu'il faut revoir car une zone est constituée de plusieurs villes entraîne systématiquement une nouvelle entité(ville) et en revanche une ville peut appartenir(villes à cheval entre plusieurs zones) à plusieurs zones fait ressortir, outre l'entité zone, mais aussi une table associative.
Voilà un exemple de modèle qui peut t'éviter de dupliquer les données:

Code : Tout sélectionner

ville(id,nom); zone(id,nom) ville_zone(ville_id,zone_id)
à partir de là tu pourras faire tes requêtes avec jointures le plus simplement possible

ViPHP
ViPHP | 2577 Messages

21 juin 2013, 13:50

En supposant que tu ne veuilles afficher que le nom de la ville : select distinct ville from ...

Si tu veux afficher d'autres informations, le problème est quelles risquent d'être différentes pour la même ville suivant la ligne, donc résultat aléatoire.