Ne pas afficher les doublons

[Résolu]
Signaler
Messages postés
116
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
21 janvier 2020
-
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
-
Bonjour,
J'ai une basse de données avec une table qui contiens une liste d'appareil électronique. La table contiens plusieurs champs, don l'un avec la marque des appareils. J'aimerais être capable de sortir une liste complète de tous les marques contenu dans ma database.

Exemple, sur ma page j'aimerais qui s'affiche :

Toshiba
Sony
Samsung
etc.

Voici mon code du moment:
$db = mysql_connect($host,$login,$pass);
mysql_select_db($base,$db);
$req = mysql_query("SELECT * FROM [table_name] ORDER BY marque");
$res = mysql_numrows($req);
$i = "0";

WHILE($res!=$i)
  {
     $vMarque = mysql_result($req,"$i","marque");
     $vID = mysql_result($req,"$i","ID");
     echo"<option width=100%>$vMarque</option>";
  $i++;
  }
mysql_close();
                     


Donc avec ce code je peu affiche les marques, mais j'aimerais ne pas afficher les doublons.


Merci de votre aide!

3 réponses

Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Il y a surement un façon plus technique mais cela fonctionne bien...!

Ouais, mais c'est vraiment moche

Fais ce traitement dans la requête SQL, regarde du côté de DISTINCT()

Cordialement,


Kohntark -
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Alors je viens rajouter mon petit grain de sel purement théorique.. sachant que la pratique n'a de pertinent que si elle se rapproche de la théorie.
Tout d'abord le Select * est à prohiber. Ensuite pour ce genre de problématique, l'origine vient surement de la conception même de ta base. Il faut nécessairement créer une table des marques qui naturellement ne contiendrait les marques de façon unique (ça peut même devenir un index si on pousse un peu..)
Donc le Distinct est 'une' solution mais est très consommateur de ressource. Je l'évite au maximum, comme certains ORM l'évitent.
C'était mon avis, ça n'engage que moi mais l'essentiel est que je sois d'accord avec moi-meme..LOL !!
S.
Messages postés
116
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
21 janvier 2020

A j'ai trouve seul,
[..]
if ($vMarque != $vMarqueOld) {
          echo"<option width=100%>$vMarque</option>";
          $vMarqueOld = $vMarque;
}
[..]


Il y a surement un façon plus technique mais cela fonctionne bien...!