Lentreprenaute Posté 8 Juin 2006 Partager Posté 8 Juin 2006 Bonsoir, je veux generer un menu, pour cela j'ai deux table j'ai en commun "CategoryID", le but generer un menu par ordre alphabetique "CategoryName", et d'afficher uniquement les categories qui ont pour demoninateur commun la valeur de "CategoryStyle". j'ai fait une premiere version avec un while qui m'a ete deconseillé sur un autre post. l'occasion pour moi de recreer certains menus. mais quid de la syntaxe. TB1 select CategoryName,CategoryID FROM Categories ORDER BY CategoryName DESC TB2 select CategoryStyle,CategoryID FROM TRI_Categories WHERE CategoryStyle=1"; Merci, Florent Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte supprimé Posté 8 Juin 2006 Partager Posté 8 Juin 2006 Ou là, c'est pas trés clair. Tu veux dire quoi par et d'afficher uniquement les categories qui ont pour demoninateur commun la valeur de"CategoryStyle" Peut tu faire la liste des champs de tes tables ?? A mon avis il y a aussi un problème dans la jointure de tes tables : j'ai en commun "CategoryID" Je ne comprends pas trop ça... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lentreprenaute Posté 8 Juin 2006 Auteur Partager Posté 8 Juin 2006 (modifié) bah decidement on ne comprend plus sur le hub simple interrogation d'une table 1 avec comme condition, que les categories correspondent a un critere qui est stocké dans une autre table ? actuellement j'ai fait une requete qui ne me sort tout ce qui correspond à CategoryStyle=1 dans une table puis le while va repiocher dans l'autre table. le CategoryID me sert donc a faire le lien. tri = "select CategoryStyle,CategoryID FROM TB2_Categories WHERE CategoryStyle=1"; $tri_result = mysql_query($tri,$link) or die ('Erreur : '.mysql_error() ); while($tri_row = mysql_fetch_array($tri_result)) { $menu = "select CategoryName,CategoryID FROM TB1_Categories WHERE CategoryID=".$tri_row['CategoryID']." ORDER BY CategoryName DESC "; $menu_result = mysql_query($menu,$link) or die ('Erreur : '.mysql_error() ); while($menu_row = mysql_fetch_array($menu_result)) { fonction($menu_row['CategoryName']); } Modifié 8 Juin 2006 par Lentreprenaute Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte supprimé Posté 8 Juin 2006 Partager Posté 8 Juin 2006 SELECT t1.CategoryName, t2.CategoryStyleFROM Categories t1, TRI_Categories t2WHERE t1.CategoryID=t2.CategoryID AND t2.CategoryStyle=1ORDER BY CategoryName DESC Lien vers le commentaire Partager sur d’autres sites More sharing options...
robinsonvendredi Posté 8 Juin 2006 Partager Posté 8 Juin 2006 Pourquoi tu ne fais pas une jointure ? select TB1_Categories.CategoryName,TB1_Categories.CategoryID FROM TB1_Categories INNER JOIN TB2_Categories ON TB1_Categories.CategoryID= TB2_Categories.CategoryID WHERE TB2_Categories.CategoryStyle=1ORDER BY TB1_Categories.CategoryName DESC Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lentreprenaute Posté 9 Juin 2006 Auteur Partager Posté 9 Juin 2006 (modifié) merci a tous les deux, Robinson, c'est exactement ce que je cherchais a faire ! merci cela fonctionne à merveille. Quel difference entre la syntaxe de Joroen? Florent Modifié 9 Juin 2006 par Lentreprenaute Lien vers le commentaire Partager sur d’autres sites More sharing options...
robinsonvendredi Posté 9 Juin 2006 Partager Posté 9 Juin 2006 Avec un INNER JOIN il n'y a pas de différence pratique à ma connaissance. Mais il est bon de connaitre cette syntaxe car elle est "généraliste" et elle peut te servir pour faire des jointures plus complexes. (OUTER JOIN, CROSS JOIN, etc...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
DuR0 Posté 9 Juin 2006 Partager Posté 9 Juin 2006 La différence c'est le nom... Jointure et jointure manuel . Les deux fonctionnes mais celle de robinson est mieux à mon sens surtout si tu travail un jour avec d'autre sgbdr que mysql @ bientôt Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant