Bonjour à tous et à toutes,
J'aurais besoin de vos lumières pour afficher le contenu d'un foreach corectement, le but est de créer un menu de trois niveaux.
Pour commencer, je créer un array via une requête avec jointure comme ça :
Si j'affiche mon array $menu_complet j'ai ça :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 $retour_menu_horizontal = $bdd->prepare("SELECT nom_onglet,lien_onglet,nom_s_ong,lien_s_ong,nom_ss_ong,lien_ss_ong FROM ".TABLE[14]." LEFT JOIN ".TABLE[19]." ON ".TABLE[14].".lien_onglet = ".TABLE[19].".cor_lien_menu LEFT JOIN ".TABLE[20]." ON ".TABLE[19].".lien_s_ong = ".TABLE[20].".cor_lien_onglet WHERE auth_view <= :auth ORDER BY ordre_aff, ordre_s_ong ASC"); $retour_menu_horizontal->bindValue('auth', $level, PDO::PARAM_INT); try { $retour_menu_horizontal->execute(); while ($retour_menu = $retour_menu_horizontal->fetch()) { $menu_complet[$retour_menu['nom_onglet']][$retour_menu['nom_s_ong']][$retour_menu['nom_ss_ong']] = $retour_menu; } $retour_menu_horizontal->closeCursor(); } catch (PDOException $e) { echo 'Error : ' . $e->getMessage(); die(); }
Code:echo '<pre>';print_r($menu_complet);echo '</pre>';
Voici comment je boucle dans le arrayCode:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135 Array ( [Accueil] => Array ( [] => Array ( [] => Array ( [nom_onglet] => Accueil [0] => Accueil [lien_onglet] => accueil [1] => accueil [nom_s_ong] => [2] => [lien_s_ong] => [3] => [nom_ss_ong] => [4] => [lien_ss_ong] => [5] => ) ) ) [Bracelets] => Array ( [Perles] => Array ( [Coquillage] => Array ( [nom_onglet] => Bracelets [0] => Bracelets [lien_onglet] => bracelets [1] => bracelets [nom_s_ong] => Perles [2] => Perles [lien_s_ong] => perles [3] => perles [nom_ss_ong] => Coquillage [4] => Coquillage [lien_ss_ong] => coquillage [5] => coquillage ) [Ourson] => Array ( [nom_onglet] => Bracelets [0] => Bracelets [lien_onglet] => bracelets [1] => bracelets [nom_s_ong] => Perles [2] => Perles [lien_s_ong] => perles [3] => perles [nom_ss_ong] => Ourson [4] => Ourson [lien_ss_ong] => ourson [5] => ourson ) ) [Mailles] => Array ( [] => Array ( [nom_onglet] => Bracelets [0] => Bracelets [lien_onglet] => bracelets [1] => bracelets [nom_s_ong] => Mailles [2] => Mailles [lien_s_ong] => mailles [3] => mailles [nom_ss_ong] => [4] => [lien_ss_ong] => [5] => ) ) ) [Charms] => Array ( [] => Array ( [] => Array ( [nom_onglet] => Charms [0] => Charms [lien_onglet] => charms [1] => charms [nom_s_ong] => [2] => [lien_s_ong] => [3] => [nom_ss_ong] => [4] => [lien_ss_ong] => [5] => ) ) ) [Contact] => Array ( [] => Array ( [] => Array ( [nom_onglet] => Contact [0] => Contact [lien_onglet] => contact [1] => contact [nom_s_ong] => [2] => [lien_s_ong] => [3] => [nom_ss_ong] => [4] => [lien_ss_ong] => [5] => ) ) ) )
Je voudrais avoir le code suivant avec mes foreach :Code:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 echo '<ul>'; foreach ($menu_complet as $key_menu => $valeurs_menu) { foreach ($valeurs_menu as $key_onglet => $valeurs_onglet) { foreach ($valeurs_onglet as $key_sous_onglet => $valeurs_sous_onglet) { if($nom_onglet != stripslashes($valeurs_sous_onglet['nom_onglet'])) { echo '<li>'; echo 'nom_onglet : '.$valeurs_sous_onglet['nom_onglet'].''; echo ' lien_onglet : '.$valeurs_sous_onglet['lien_onglet'].''; } if($valeurs_sous_onglet['nom_s_ong'] != '') { echo '<ul>'; if($nom_s_ong != stripslashes($valeurs_sous_onglet['nom_s_ong'])) { echo '<li>'; echo ' nom_s_ong : '.$valeurs_sous_onglet['nom_s_ong'].''; echo ' lien_s_ong : '.$valeurs_sous_onglet['lien_s_ong'].''; } echo '<ul>'; if($valeurs_sous_onglet['nom_ss_ong'] != '') { echo '<li>'; $nom_onglet = $valeurs_sous_onglet['nom_onglet']; $nom_s_ong = $valeurs_sous_onglet['nom_s_ong']; echo ' nom_ss_ong : '.$valeurs_sous_onglet['nom_ss_ong'].''; echo ' lien_ss_ong : '.$valeurs_sous_onglet['lien_ss_ong'].''; echo '</li>'; echo '</ul>'; } echo '</li>'; echo '</ul>'; } echo '</li>'; } } } echo '</ul>';
mais c'est un carnage lol est ce que quelqu'un peut me donner un coup de main, c'est peut être la requête qui est pas bien faitesCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <ul> <li>nom_onglet : Accueil lien_onglet : accueil</li> <li>nom_onglet : Bracelets lien_onglet : bracelets <ul> <li> nom_s_ong : Perles lien_s_ong : perles <ul> <li> nom_ss_ong : Coquillage lien_ss_ong : coquillage</li> <li> nom_ss_ong : Ourson lien_ss_ong : ourson</li> </ul> </li> <li> nom_s_ong : Mailles lien_s_ong : mailles</li> </ul> </li> <li>nom_onglet : Charms lien_onglet : charms</li> <li>nom_onglet : Contact lien_onglet : contact</li> </ul>
Merci d'avance.