J'ai 2 tables. Une table est 'en-têtes' & contient des titres et l'autre est 'sous-titres' et contient des sous-titres qui sont (& doivent être) classés sous les rubriques et doivent avoir un titre respectif. Un sous-titre peut avoir un seul titre et de nombreux sous-titres peuvent avoir le même titre. Considérons donc le format suivant:Echo PHP Répétition des lignes une seule fois
--Table heading
heading_id heading
1 H1
2 H2
3 H3
--Table sub_heading
sub_head_id sub_heading heading_id
1 SH1 1
2 SH2 1
3 SH3 2
4 SH4 3
5 SH5 2
6 SH6 4
Ce que je voudrais faire est d'interroger la base de données qu'une seule fois et obtenir toutes sub_headings et leurs rubriques correspondantes (en utilisant Inner Join?) Et la sortie un en-tête une seule fois et la liste de tous les sub_headings énumérés sous leur titre respectif. Ainsi, dans la pratique, je voudrais montrer le RÉSULTAT DE LA SORTIE EN:
H1
--SH1
--SH2
H2
--SH3
--SH5
H3
--SH4
H4
--SH6
Comme vous pouvez le voir, les titres sont echo'ed qu'une seule fois et toutes les sous-titres qui appartiennent à une rubrique sont joliment montré sous leur titre respectif. Donc, je voudrais savoir quelle requête je voudrais écrire pour le faire.
REMARQUE: J'ai déjà écrit un code pour extraire heading_id et, ce faisant, dans une boucle, interrogez la base de données pour les sous-titres respectifs. Cela entraîne à nouveau une boucle des sous-têtes. Mais (j'en ai l'impression) l'inconvénient est que pour chaque titre existant, la base de données sera interrogée au moins une fois pour obtenir les sous-titres correspondants. Donc, si 50 vedettes existent, en les récupérant dans une boucle, une deuxième requête est effectuée pour obtenir les sous-titres. Cela nécessite que j'écrive une deuxième requête pour obtenir les sous-titres et les traiter en boucle. Je veux éviter cela.
Donc, il serait vraiment utile si quelqu'un peut me dire comment interroger la DB une seule fois et afficher le résultat comme indiqué ci-dessus. Merci d'avance.
IMPRESSIONNANT! Travaillé parfaitement! Merci beaucoup. – Devner
@Tatu, il vous manque une virgule mon ami, dans votre requête. Il aurait dû être: s.heading_id ASC, s_head_id ASC Corrections mineures, mais peuvent aider quelqu'un dans le futur. – Devner
@Devner, merci de le signaler. –