Bonjour,
J'essaye de faire une jointure sur plusieurs tables afin de faire un menu avec plusieurs niveaux de sous menus (jusqu'à 4).
J'ai une table par niveau de menu (menuNiv1, menuNiv2, menuNiv3 et menuNiv4) et dans chaque table une colonne qui fait le lien avec la table précédente.
J'ai essayé, entre autre, ce code, qui n'affiche rien du tout :
Pour le moment, pour simplifier, je pourrais déjà me limiter à essayer de faire la jointure sur les 2 premières tables uniquement, comme ça (mais ça ne marche pas non plus) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 $base=connectBDD(); $reponse = $base->query (' SELECT n1.itemMenu AS itemMenu1, n2.itemMenu AS itemMenu2, n3.itemMenu AS itemMenu3, n4.itemMenu AS itemMenu4 FROM menuNiv1 AS n1 LEFT JOIN menuNiv2 AS n2 ON itemMenu1 = n2.idParent LEFT jOIN menuNiv3 AS n3 ON n2.id = n3.idParent LEFT JOIN menuNiv4 AS n4 ON n3.id = n4.idParent '); $tabMenus = array(); while ($donnees = $reponse->fetch()) { $tabMenus[] = array( 'menu1' => $donnees['itemMenu1'], 'menu2' => $donnees['itemMenu2'], 'menu3' => $donnees['itemMenu3'], 'menu4' => $donnees['itemMenu4'] ); } echo $tabMenus[0]['menu1']; $reponse->closeCursor(); closeBDD();
Est-ce que quelqu'un peut m'aider à trouver l'erreur (ou les erreurs) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 $base=connectBDD(); $reponse = $base->query (' SELECT n1.itemMenu AS itemMenu1, n2.itemMenu AS itemMenu2, n3.itemMenu AS itemMenu3, n4.itemMenu AS itemMenu4 FROM menuNiv1 AS n1 LEFT JOIN menuNiv2 AS n2 ON itemMenu1 = n2.idParent '); $tabMenus = array(); while ($donnees = $reponse->fetch()) { $tabMenus[] = array( 'menu1' => $donnees['itemMenu1'], 'menu2' => $donnees['itemMenu2'] ); } echo $tabMenus[0]['menu1']; $reponse->closeCursor(); closeBDD();
Merci!
Partager