Problème de répétiton d'une variable venant d'une base dans un menu

Eléphanteau du PHP | 43 Messages

12 août 2007, 12:45

Bonjour à tous et merci de votre temps.

J'ai fait un menu. Quand on clique sur l'un des thèmes, une fonction affiche l'ensemble des pays dans lesquels ont trouvé un articles sur ce themes.

Seulement voilà, si j'ai plusieurs articles venant d'un pays sur un même theme, alors dans ma barre de navigation, le nom du pays s'affiche autant de fois qu'il y a d'articles.

Que puis je faire pour que le nom du pays ne s'affiche qu'une seule fois par themes ?

Voici le code :

http://www.july-robert.com
C'est la partie à droite de la carte.
	
//____________________________________________________________________________CHOIX PAR THEME__________________________________________________________________________________
function choixThemes($langue){
	$titre = "titre_".$langue;
	$texte = "texte_".$langue;
	$adresseDictionnaire = "textes_".$langue.".inc.php";
	require($adresseDictionnaire);
	$selection_themes = "SELECT id,$titre,page FROM themes WHERE id!=1 AND menu=0";
	$requete_themes = MYSQL_QUERY($selection_themes);
	while($resultat_themes = mysql_fetch_array($requete_themes)){
		echo "- <a href='".$resultat_themes[page]."index.php?langue=".$langue."&theme=".$resultat_themes[id]."' class='texte'>$resultat_themes[$titre]</a><br>";
		if($_GET[theme]==$resultat_themes[id]){
			$selection_pays = "SELECT A.id, A.id_theme, A.id_pays FROM articles AS A WHERE A.id_theme=$_GET[theme]";
			$requete_pays = MYSQL_QUERY($selection_pays);
			while($resultat_pays = mysql_fetch_array($requete_pays)){
				$pays = $resultat_pays[id_pays];
				$nomPays = "nom_".$langue;
				$selection_nom_pays = "SELECT id, $nomPays FROM pays WHERE id=$pays";
				$requete_nom_pays = MYSQL_QUERY($selection_nom_pays);
				$resultat_nom_pays = mysql_fetch_array($requete_nom_pays);
					echo "<img src='media/utils/invisible.gif' width='12px' heigh='1 px'><a href='theme.php?langue=".$langue."&theme=".$_GET[theme]."&pays=".$pays."' class='texte' style='text-decoration: none;'>".$resultat_nom_pays[$nomPays]."</a><br>";
				
			}echo "<img src='media/utils/invisible.gif' width='12px' heigh='1 px'><a href='theme.php?langue=".$langue."&theme=".$_GET[theme]."' class='texte' style='text-decoration: none;'>".$D_tout_voir."</a><br>";
		} echo "<br>";
	}
}
//___________________________________________________________________________CHOIX PAR THEME______________________________________________________________________________FIN______					
		
	
Merci pour vos réponses.

July

Eléphant du PHP | 451 Messages

13 août 2007, 07:09

Bonjour,

A ta place, dans la boucle, j'initialiserais un tableau indexé sur le nom du pays (en lui mettant une valeur qui m'intéressera plus tard ou bidon selon) et je n'afficherais les pays qu'une fois sort de la boucle.
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 août 2007, 08:25

Tu peux essayer d'utiliser la clause DISTINCT dans ta requête SQL pour qu'il te ramène la liste des pays sans les doublons...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...