affichage d'array multidimentionnel
Bonjour à tous et à toutes.
J'aurai besoins de votre aide pour afficher le nom des onglets qui sont dans trois tables de ma bdd.
J'ai fait une requête avec des left joint pour réunir les trois tables et des array pour l'affichage mais je me perd dans les foreach.
Voici mon code
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| $onglet_pl = array(); // déclaration des tableaux
$onglet_niv2_pl = array();
$onglet_niv3_pl = array();
$req_menu_hor_pl = $bdd->prepare("SELECT nom_onglet, lien_onglet, cor_lien_menu, nom_s_ong, lien_s_ong, auth_view_s, nom_s_ong_s, lien_s_ong_s, auth_view_s_s FROM menu
LEFT JOIN sous_menu ON menu.lien_onglet = sous_menu.cor_lien_menu
LEFT JOIN sous_sous_menu ON sous_menu.lien_s_ong = sous_sous_menu.cor_lien_menu_s
WHERE auth_view <= :auth ORDER BY ordre_aff, ordre_s_ong, ordre_s_ong_s ASC");
$req_menu_hor_pl->bindValue('auth', $level, PDO::PARAM_INT);
$req_menu_hor_pl->execute();
while ($res_menu_hor_pl = $req_menu_hor_pl->fetch())
{
$onglet_pl[$res_menu_hor_pl['nom_onglet']] = $res_menu_hor_pl['lien_onglet']; // alimente le tableau
$onglet_niv2_pl[$res_menu_hor_pl['nom_onglet']][] = $res_menu_hor_pl;
$onglet_niv3_pl[$res_menu_hor_pl['nom_onglet']][][] = $res_menu_hor_pl;
}
echo"<ul>Menu Principal (Horizontal en haut de l'écran)";
foreach($onglet_niv3_pl as $cle3_pl => $values3_pl)
{
echo '<li>';
echo'<a href="'.ROOTPATH.'/'.urlencode($onglet_pl[$cle3_pl]).'.html" title="accédez a la page '.stripslashes($cle3_pl).'"><span>'.stripslashes($cle3_pl).'';
foreach ($values3_pl as $cle2_pl => $values2_pl)
{
if( $onglet_niv2_pl[$cle2_pl] != '')
{
echo'<ul>';
echo '<li>';
echo'<a href="'.ROOTPATH.'/'.urlencode($onglet_niv2_pl['lien_s_ong']).'.html" title="accédez a la page '.stripslashes($onglet_niv2_pl['nom_s_ong']).'">
<span>'.stripslashes($onglet_niv2_pl[$cle2_pl]).'';
foreach($values2_pl as $cle_pl => $values_pl)
{
if( $values_pl['nom_s_ong'] != '')
{
echo'<ul>';
$auth_necessaire =''.$values_pl['auth_view_s'].'';
if (!verif_auth($auth_necessaire))
{
echo '<li><a href="'.ROOTPATH.'/'.urlencode($values_pl['lien_s_ong']).'.html"
title="accédez a la page '.stripslashes($values_pl['nom_s_ong']).'">'.stripslashes($values_pl['nom_s_ong']).'</a>';
echo '</li>';
}
echo'</ul>';
}
}
echo'</ul>';
}
echo'</span></a>';
echo'</li>';
}
echo'</span></a>';
echo'</li>';
}
echo"</ul>";
$req_menu_hor_pl->closeCursor();
echo '<pre>';
print_r($onglet_niv3_pl);
echo '</pre>';
?> |
Voici ce que donne le print_r($onglet_niv3_pl)
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 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 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
| Array
(
[Vie de la Copro] => Array
(
[0] => Array
(
[0] => Array
(
[nom_onglet] => Vie de la Copro
[lien_onglet] => vie-de-la-copro
[cor_lien_menu] => vie-de-la-copro
[nom_s_ong] => Actualités
[lien_s_ong] => actualites
[auth_view_s] => 0
[nom_s_ong_s] =>
[lien_s_ong_s] =>
[auth_view_s_s] =>
)
)
[1] => Array
(
[0] => Array
(
[nom_onglet] => Vie de la Copro
[lien_onglet] => vie-de-la-copro
[cor_lien_menu] => vie-de-la-copro
[nom_s_ong] => Travaux
[lien_s_ong] => travaux
[auth_view_s] => 1
[nom_s_ong_s] =>
[lien_s_ong_s] =>
[auth_view_s_s] =>
)
)
[2] => Array
(
[0] => Array
(
[nom_onglet] => Vie de la Copro
[lien_onglet] => vie-de-la-copro
[cor_lien_menu] => vie-de-la-copro
[nom_s_ong] => Questions / Réponses
[lien_s_ong] => questions-reponses
[auth_view_s] => 1
[nom_s_ong_s] =>
[lien_s_ong_s] =>
[auth_view_s_s] =>
)
)
[3] => Array
(
[0] => Array
(
[nom_onglet] => Vie de la Copro
[lien_onglet] => vie-de-la-copro
[cor_lien_menu] => vie-de-la-copro
[nom_s_ong] => Petites Annonces
[lien_s_ong] => petites-annonces
[auth_view_s] => 0
[nom_s_ong_s] =>
[lien_s_ong_s] =>
[auth_view_s_s] =>
)
)
)
[Documents] => Array
(
[0] => Array
(
[0] => Array
(
[nom_onglet] => Documents
[lien_onglet] => documents
[cor_lien_menu] => documents
[nom_s_ong] => Rôles ASL / Conseil Syndical / Sundic
[lien_s_ong] => roles-asl-conseil-syndical-sundic
[auth_view_s] => 0
[nom_s_ong_s] =>
[lien_s_ong_s] =>
[auth_view_s_s] =>
)
)
[1] => Array
(
[0] => Array
(
[nom_onglet] => Documents
[lien_onglet] => documents
[cor_lien_menu] => documents
[nom_s_ong] => Règlements
[lien_s_ong] => reglements
[auth_view_s] => 1
[nom_s_ong_s] => Réglement de copropriété générale
[lien_s_ong_s] => reglement-de-copropriete-generale
[auth_view_s_s] => 0
)
)
[2] => Array
(
[0] => Array
(
[nom_onglet] => Documents
[lien_onglet] => documents
[cor_lien_menu] => documents
[nom_s_ong] => Règlements
[lien_s_ong] => reglements
[auth_view_s] => 1
[nom_s_ong_s] => Réglement de copropriété particulier
[lien_s_ong_s] => reglement-de-copropriete-particulier
[auth_view_s_s] => 0
)
)
[3] => Array
(
[0] => Array
(
[nom_onglet] => Documents
[lien_onglet] => documents
[cor_lien_menu] => documents
[nom_s_ong] => Plans
[lien_s_ong] => plans
[auth_view_s] => 1
[nom_s_ong_s] =>
[lien_s_ong_s] =>
[auth_view_s_s] =>
)
)
)
[Sécurité] => Array
(
[0] => Array
(
[0] => Array
(
[nom_onglet] => Sécurité
[lien_onglet] => securite
[cor_lien_menu] =>
[nom_s_ong] =>
[lien_s_ong] =>
[auth_view_s] =>
[nom_s_ong_s] =>
[lien_s_ong_s] =>
[auth_view_s_s] =>
)
)
)
[Contacts] => Array
(
[0] => Array
(
[0] => Array
(
[nom_onglet] => Contacts
[lien_onglet] => contact
[cor_lien_menu] =>
[nom_s_ong] =>
[lien_s_ong] =>
[auth_view_s] =>
[nom_s_ong_s] =>
[lien_s_ong_s] =>
[auth_view_s_s] =>
)
)
)
) |
Je voudrais que ça s'affiche comme suit mais je n'y arrive pas.
Vie de la Copro ONGLET NIVEAU 1
- Actualités ONGLET NIVEAU 2 QUI APPARTIENT A Vie de la Copro
- Travaux ONGLET NIVEAU 2 QUI APPARTIENT A Vie de la Copro
- Questions / Réponses ONGLET NIVEAU 2 QUI APPARTIENT A Vie de la Copro
- Petites Annonces ONGLET NIVEAU 2 QUI APPARTIENT A Vie de la Copro
Documents ONGLET NIVEAU 1
- Rôles ASL / Conseil Syndical / Sundic ONGLET NIVEAU 2 QUI APPARTIENT A Documents
- Règlements ONGLET NIVEAU 2 QUI APPARTIENT A Documents
- Règlement de copropriété générale ONGLET NIVEAU 3 QUI APPARTIENT A ONGLET NIVEAU 2 Règlements QUI APPARTIENT A Document
- Règlement de copropriété particulier ONGLET NIVEAU 3 QUI APPARTIENT A ONGLET NIVEAU 2 Règlements QUI APPARTIENT A Documents
- Plans ONGLET NIVEAU 2 QUI APPARTIENT A Documents
Sécurité ONGLET NIVEAU 1
Contacts ONGLET NIVEAU 1
Est-ce que quelqu'un peux m'aider à faire ça ? plus je touche moins ça fonctionne.
Merci d'avance aux bonnes volontés