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 :

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();
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
 
$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();
Est-ce que quelqu'un peut m'aider à trouver l'erreur (ou les erreurs) ?
Merci!