Page 1 sur 1

Menus à plusieurs niveaux

Posté : 15 oct. 2012, 14:27
par Cypher_PHP
Bonjour

les noms de parents s'affichent ok
les noms d'enfants s'affichent ok
mais les noms de petits-enfants s'affichent pas correctement, c'est à dire que les petits enfant récupèrent le nom de leurs parents et leurs oncles pour s'afficher.

pour simplifier, voici le schéma
-->France
------->Ile de France
------------>Ile de France (alors que normalement Paris doit s'afficher!!)
------------> Gironde (alors que normalement Bordeaux doit s'afficher!!)
------------> Hérault(alors que normalement Narbonne doit s'afficher!!)
------>Gironde
------>Hérault
Je voudrais afficher les noms de petits enfants au lieu des parents au 3ème niveau.
merci beaucoup de votre aide précieuse

voici le code PHP
$AllLinks = array();
while( $LienArr = mysql_fetch_assoc($query) ) {
/*
        echo '<pre>';
        print_r($LienArr);
        echo '</pre>';
*/
        $AllLinksParent[] = $LienArr;
}
$navbar = '';
foreach( $AllLinksParent as $LinkParentID => $LinkParentArr) {
    if(IS_NULL($LinkParentArr['parent_id'])){
//        if($LinkParentArr['parent_id']=='NULL'){
//        echo $LinkParentArr['title'].'<br />';
        $navbar .= "<li class='dropdown'>";
        $navbar .=$LinkParentArr['id']."<a href='".$LinkParentArr['file']."' class='dropdown-toggle' data-toggle='dropdown'>".html_entity_decode($LinkParentArr['mtitle'],ENT_QUOTES)." <b class='caret'></b></a>";
        $navbar .="<ul class='dropdown-menu'>";
        $navbar .="<ul class='dropdown submenu'>";
        
        foreach( $AllLinksParent as $ChildrenLinkId => $ChildrenLinkArr ){
            if($ChildrenLinkArr['parent_id']==$LinkParentArr['id']){
                $navbar .= $ChildrenLinkArr['id']."<a class='dropdown-toggle' data-toggle='dropdown' href='#' target='".$ChildrenLinkArr['target']."'>".html_entity_decode($ChildrenLinkArr['mtitle'],ENT_QUOTES)."</a>";
                 
                foreach( $AllLinksParent as $SubChildrenLinkId => $SubChildrenLinkArr ){
                 if($SubChildrenLinkArr['parent_id']==$LinkParentArr['id']){
                            $navbar .="<ul class='dropdown-menu submenu-show submenu-hide'>";
                            $navbar .= $SubChildrenLinkArr['id']."<a href='#' target='".$SubChildrenLinkArr['target']."'>".html_entity_decode($SubChildrenLinkArr['mtitle'],ENT_QUOTES)."</a>";
                            $navbar .="</ul>";
                    }
                 }
                }
            }
        $navbar .="</ul>";
        $navbar .="</ul>";
        $navbar .="</li>";
    }
}

Re: Menus à plusieurs niveaux

Posté : 15 oct. 2012, 17:04
par asf21
-->France = "parent" donc level1-0-0
------->Ile de France = "enfant" donc level1-1-0
------------>Paris = "petit-enfant" donc level1-1-1
------------>Bordeaux = "petit-enfant ou frère" donc level1-1-2 sauf que ce devrait être cousin donc level 1-2-1
------------>Narbonne = "petit-enfant ou frère" donc level1-1-3 sauf que ce devrait être cousin donc level 1-3-1
------>Gironde là level 1-2-0
------>Hérault et là level 1-3-0

Y'a pas de grands-parents là.(<- c'était une blague...je sors)

Epures un peu ton source stp et commentes le qu'on sache où on en est et d'où viennent certaines choses. ;)

Re: Menus à plusieurs niveaux

Posté : 15 oct. 2012, 23:43
par moogli
salut,


tu utilise AllLinksParent pour tes boucles cela me semble plus qu'étonnant.

sachant qu'il y a plus de 36000 communes en France (36683 sur la base insee que j'ai récupéré), qu'il y a 101 départements (même source dom compris) tu as un tableau de 36784 entrées (communes + départements) tu compte faire 36784 fois 36784 boucles ( soit 1 353 062 656 au total) pour afficher la chose ?

A mon avis il serait bon de revoir ton algo. (qui a faire une requete par département).

@+

Re: Menus à plusieurs niveaux

Posté : 16 oct. 2012, 09:33
par Cypher_PHP
merci pour vos réponses

je vais refaire ce code

Re: Menus à plusieurs niveaux

Posté : 16 oct. 2012, 15:09
par asf21
moogli, on peut pas créer une simple table sql avec les régions, départements et communes puis piocher dedans en croisant?
Qu'en penses-tu?
Y'a ce qu'il faut sur le net déjà tout prêt à ce sujet...

Re: Menus à plusieurs niveaux

Posté : 19 oct. 2012, 08:48
par Cypher_PHP
me revoilà

j'ai trouvé un script qui l'air de fonctionner correctement
voici le lien pour certains qui veulent l'utiliser
http://wizardinternetsolutions.com/web- ... php-mysql/

maintenant, j'essaie d'adapter ce script à Bootstrap.
un peu dur pour moi ;)

bonne journée