Supprimer les doublons dans l'affichage d'une combo box

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Supprimer les doublons dans l'affichage d'une combo box

par Kaoteknik » 11 oct. 2007, 23:06

Aussitôt dit, aussitôt fait !

J'ai ajouté la commande "distinct" comme tu me l'as suggéré et ça fonctionne parfaitement...

Merci beaucoup. :)

par Tracker » 11 oct. 2007, 22:59

Salut,

Tu peux remplacer ton ordre par:

Code : Tout sélectionner

SELECT distinct metier FROM table_metiers ORDER BY metier ASC
ou

Code : Tout sélectionner

SELECT metier FROM table_metiers group by metier ORDER BY metier ASC
c'est toi qui vois...

Supprimer les doublons dans l'affichage d'une combo box

par Kaoteknik » 11 oct. 2007, 22:52

Bonjour à tous,

J'ai actuellement un problème à résoudre et malgré de nombreuses recherches je n'ai pas trouvé de réponses probantes (sans doute ai-je du utiliser de mauvais mots-clé lors de mes recherches).

Bien, pour exposer mon propos, considérons la table "table_metiers" suivante :

Code : Tout sélectionner

metier | nom | prenom _____________________________________________ informaticien | Gates | Bill militaire | Rambo | John serveuse | Connor | Sarah informaticien | Campbell | Johanna animateur | Mouse | Mickey animateur | Cromwell | George
Le but est d'afficher dans une combo box la liste des métiers existants. On remarquera que certaines personnes exercent le même métier, il est donc inutile de les citer à plusieurs reprise. Et c'est là qu'intervient mon problème : pas moyen de supprimer les doublons dans ma combo box.

Voici mon code actuellement :
<?php

$requete = ("SELECT metier FROM table_metiers ORDER BY metier ASC");
$resultat = mysql_query ($requete) or die (mysql_error());

// Je vous épargne tout le code superflu pour l'exemple.
// Reste donc le code qui génère les différents éléments de la combo box...

while ($selection = mysql_fetch_array($resultat)) {
		echo '<option value="'.$selection['metier'].'" ';

		if ($_POST['metier'] == $selection['metier']) {
			echo 'selected="selected"';
		}
		else {
			echo '';
		}
			
		echo	'>'.$selection['metier'].'</option>';
	}
?>
En l'état la combo box affiche bien tous les métiers existants, mais ils apparaissent autant de fois qu'il y a d'occurences dans la BDD. Comment éviter ça ?

Merci, et à très bientôt ! :)