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;