Requete avec jointure... et MIN

Mammouth du PHP | 531 Messages

01 mai 2008, 16:39

Bonjour,

Voilà je suis un peu beaucoup en galère... j'essaye de m'en sortir mais là j'y arrive plus :lol:

Voici dabord mes tables :

Image





L'idée ou plutôt le but est de construire un menu dont l'intitulé des liens correspondrait aux nom des sections. La destination de ce lien correspondrait à l'id_pages dont l'ordre de la table page est le plus faible.





Par exemple, si j'ai dans la table section :

id_section = 1, nom = toto
id_section = 2, nom = titi
id_section = 3, nom = nono


Et dans la table des pages :

id_pages = 1, nom = page A, section toto, ordre = 1
id_pages = 2, nom = page B , section toto, ordre = 2
id_pages = 3, nom = page C , section titi, ordre = 1


Mon menu devrais ressembler à ça :

- Intitulé (nom section) : toto + destination (id pages) : 1
- Intitulé (nom section) : titi + destination (id pages) : 3


Donc à chaque fois un seul résultat pour une section et pas de résultat si il n'ya pas de page lié à une section...




Je sais donc ce que je veut mais quand il s'agit e faire la requête je m'embrouille totalement. Pour l'instant j'ai ça, avec erreur en rapport avec (MIN) :
"SELECT zcms_sections.id_sections, zcms_sections.nom, id_pages, MIN(zcms_pages.ordre) AS PageDestination 
FROM zcms_sections, zcms_pages 
ORDER BY zcms_sections.ordre"
Voilà, j'espère que vous pourrez m'éclaircir les idées :wink:

Mammouth du PHP | 1668 Messages

01 mai 2008, 17:03

Je vais t'avouer un truc, moi même je ne maitrise pas bien les jointures...
Mais si j'étais toi, au lieu de faire un truc du genre :
nom = page A
nom = page B
nom = page C

je ferais :
page = A
page = B
page = C

Plus simple, plus léger, plus facile a manier et moins d'embrouilles...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Mammouth du PHP | 531 Messages

01 mai 2008, 17:10

Je vais t'avouer un truc, moi même je ne maitrise pas bien les jointures...
Mais si j'étais toi, au lieu de faire un truc du genre :
nom = page A
nom = page B
nom = page C

je ferais :
page = A
page = B
page = C

Plus simple, plus léger, plus facile a manier et moins d'embrouilles...
Euh.... j'avoue que je te suis pas du tout là, surement mon cerveaux qui chauffe :D

Mammouth du PHP | 1668 Messages

01 mai 2008, 17:19

Ah bah quand on a pas l'habitude :roll:
Et dans la table des pages :

id_pages = 1, nom = page A, section toto, ordre = 1
id_pages = 2, nom = page B , section toto, ordre = 2
id_pages = 3, nom = page C , section titi, ordre = 1
Moi je ferais comme ça :
id_pages = 1, page = A, section toto, ordre = 1
id_pages = 2, page = B , section toto, ordre = 2
id_pages = 3, page = C , section titi, ordre = 1

PS : on t'as jamais dis que si on remplaçais le premier a de ton pseudo par un o c'est méchant ??? :roll:
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Mammouth du PHP | 531 Messages

01 mai 2008, 17:33

Bon en fait j'ai résolu le problème simplement.
J'ai crée une table pivot contenant les index_sections en rapport avec les index_pages...

Ça simplifie carrément la requête :)