Version complète: sur le forum Webmaster Hub : probleme sur une requete mysql/php
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
dounawa
Bonjour
Je galere depuis pas mal de temps sur une requete

voici la situation :

jai une table ( tunnel_fam ) qui regroupent les jointures de différentes tables :

1er champ >> la reference du produit ( qui se retrouve dans la table produit )
2e champ >> sa famille ( qui se retrouve dans la table famille )
3e champ >> son theme ( qui se retrouve dans la table theme )
4e champ >> son materiau ( qui se retrouve dans la table materiau )
( je ne cite pas l'id )

dans cette table j'ai donc pour chaque reference de produit toutes ces appartenance catégorie

ok donc on va dire que je recherche les familles dont les produit sont du theme1
j'ai donc pour cela dans l'exemple 6 enregistrements dont le theme est theme1 les autres sont du theme2 theme3 etc....:
ref 2 dont famille est bougie
ref 4 dont famille est bougie
ref 5 dont famille est voiture
ref 8 dont famille est ordinateur
ref 9 dont famille est ordinateur
ref 10 dont famille est pantalon

si je fais

CODE
    $req="SELECT famille FROM tunnel_fam WHERE theme='theme1'";
    $res= mysql_query($req) or die ('Erreur : '.mysql_error() );
    while($ligne = mysql_fetch_array($res))
      {
      $fam=$ligne['famille'];
      echo $fam.'<br />';
      }


il va me sortir
bougie
bougie
voiture
ordi
ordi
pantalon

moi j'aimerai qu'il me sorte
bougie
voiture
ordi
et pantalon

comment devrais etre ma requete pour cela selon vous
( désolé mais par peur de m'embrouiller dans les explications j'ai préféré marcher à l'exemple precis smile.gif )
KnockedMaster
Salut et bienvenue sur le Hub,

Un simple Group By devrait suffire ...

ça donnerait dans ta requête :

CODE
$req="SELECT famille FROM tunnel_fam WHERE theme='theme1 GROUP BY famille'";


@+
dounawa
wow la honte
merci KnockedMaster
pourtant le group by se charge de trier ..... ok ok je confond avec order by, bienvenue chez les newbies, c souvent çà on se casse la tete alors que la soluce est simple, merci merci wink.gif
KnockedMaster
Y'a pas de quoi ... et y'a pas de honte, j'ai mis un lien vers le site du zéro parce que c'est le premier que j'ai trouvé smile.gif

@+
varod
CITATION(KnockedMaster @ jeudi 25 septembre 2008 à 13:03) *
Salut et bienvenue sur le Hub,

Un simple Group By devrait suffire ...

ça donnerait dans ta requête :

CODE
$req="SELECT famille FROM tunnel_fam WHERE theme='theme1 GROUP BY famille'";


@+


J'aurai fait un disctinct, ça me parait plus approprié nan ?

CODE
$req="SELECT DISTINCT famille FROM tunnel_fam WHERE theme='theme1'";

KnockedMaster
C'est fonctionnel aussi, de là à dire qu'un DISTINCT est plus approprié, faut voir la structure exacte des tables, parce que pour le même prix tu peux utiliser UNIQUE aussi ...

Bref ... tous les chemins mènent à Rome, la preuve ...

@+

dounawa
c cool merci encore wink.gif
distinct , unique, group by .. je peux dormir tranquil, grace à toi j'ai pu pas mal avancer aujourd'hui, merci merci wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.