IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Menu css ul li avec base de données


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Menu css ul li avec base de données
    Bonjour,
    Voici mon problème :
    J'ai une table pour le menu avec les champs suivant : id, niveau, parent, description.
    Id : unique auto_increment
    niveau : le niveau hierarchique (root = 0)
    parent : l'id parent de l'entrée.

    Mon but faire un menu en ul li à x niveaux.

    J'ai fait une fonction qui marche mais que sur un seul niveau ce qui est pas top:

    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
     
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
      $niv_h_tab[$row{'id'}] = $row['num_h'];
      $parent_tab[$row{'id'}] = $row['parent'];
      $descr_tab[$row{'id'}] = stripslashes($row['description']);
      $niv_max = $row['num_h'];
    }
     
    $html = "<ul id=\"menu\">";
    $niv = 1;
    foreach ($niv_h_tab as $key => $value){
      if ($value == $niv){
        $html .= "<li><a href=\"#\">".$descr_tab[$key]."</a>";
        $html .= "<ul>";
        foreach ($parent_tab as $key_p => $parent){
          if ($parent == $key){
            $html .= "<li><a href=\"#\">".$descr_tab[$key_p]."</a></li>";
          }
        }
        $html .= "</ul>";
        $html .= "</li>";
      }
    }
    $html .= "</ul>";
    echo $html;
    }
    Hélas à mon avis la logique de cette fonction est fausse pour un menu à x niveaux.

    Si vous avez des idées, je suis preneur. Merci d'avance.

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    oui. faire un nombre arbitraire de niveau est plus facile avec une fonction récursive qu'une fonction itérative.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Entièrement d'accord ! Sauf que c'est la que mon cerveau bloque !
    Je reste coincé sur une méthode xpath xml !

Discussions similaires

  1. menu déroulant avec base de données
    Par ideal23 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 20/11/2011, 23h40
  2. menu déroulant avec base de données
    Par ideal23 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/09/2011, 13h03
  3. [AJAX] menu et sous menu avec base de données
    Par pp_le_moko dans le forum AJAX
    Réponses: 1
    Dernier message: 18/01/2010, 19h21
  4. [MySQL] menu et sous menu avec base de données
    Par pp_le_moko dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/01/2010, 12h16
  5. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo