HTML - PHP - MySQL - SVG

KERNI's SEITE

Das Nested Set Model

Veröffentlicht am


Das ganze zu einer Ungeordneten Liste zusammenbauen

 

Um ein Menü mit der UL LI Struktur zusammen zu bauen könnt Ihr folgenden Code verwenden.

function getMenu(){
 
   include('connpdo.php');
  
   $query = "SELECT n.id, n.name, count(n.id) AS level FROM `tree` AS n, `tree` AS p WHERE n.lft BETWEEN p.lft AND p.rgt GROUP BY n.lft ORDER BY n.lft";
 
   $einlesen = $pdo->query($query);
 
   $menu = array();
 
   while($einzeln = $einlesen->fetch(PDO::FETCH_ASSOC)){
      $menu[] = array($einzeln['id'],$einzeln['name'],$einzeln['level']);
   }
 
    return buildMenu($menu);
  
}
 
function buildMenu($subMenu){
   $level = -1;
   $html = "";
   $z=0;
   
   foreach($subMenu as $row){
      if($z>-1){
         if($row[2] < $level){
            $diff = $level - $row[2];
            $html .= "</li>";
            $html .= str_repeat("</ul></li>", $diff);
         }
         if($row[2] > $level){ $html .= "<ul>"; }
         if($row[2] == $level){ $html .= "</li>"; }
         
         $html .= '<li><a id="menu_'.$strID.'">'.$row[1].'</a>';
         $level = $row[2];
      }else{
         $z=$z+1;
      }
   }
   
   if($level >= 1) $html .= str_repeat("</li></ul>", $level);
   return $html;
}
 
   $menustr = '<div id="navph"><div id="nav">';
 
   $menustr .= getMenu();
 
   $menustr = substr($menustr, 0, -5);
 
   $menustr .= "</ul></div></div><div class=\"clf\"></div>";
   echo $menustr;