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 : 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 $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 : Sélectionner tout - Visualiser dans une fenêtre à part echo '<pre>';print_r($menu_complet);echo '</pre>';Voici comment je boucle dans le array
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
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 : 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
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 faites
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 <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.
Partager