|
|
|
|
<?php
include ("configs/dbopen.php");
$sql = "SELECT m.menu_items_id mm, m.menu_items_name mn,
m1.menu_items_id mm1, m1.menu_items_name mn1,
m2.menu_items_id mm2, m2.menu_items_name mn2
FROM `menu_items` m
LEFT JOIN menu_items m1 ON m.menu_items_id = m1.menu_items_pid
LEFT JOIN menu_items m2 ON m1.menu_items_id = m2.menu_items_pid
WHERE m.menu_id =7
AND m.menu_items_pid =0
ORDER BY m.pos,m.menu_items_id";
$res = mysql_query($sql);
if(!$res) exit("Error in $sql: ". mysql_error());
$menu_arr = "";
$menu_arr .= "<div id='myslidemenu' class='jqueryslidemenu'><ul>";
for($res = mysql_query($sql), $c1 = null ; $row = mysql_fetch_row($res); ){
list($mm, $mn, $mm1,$mn1, $mm2,$mn2) = $row;
//пункты меню
if($c1 !==$mm){
$c1 = $mm;
$c2 = null;
$menu_arr .= "<li><a href='?cat=" . $mm . "'>" . htmlspecialchars($mn) . "</a>";
}
if($mm1 != null){
//подпункты, 2 уровень
$menu_arr .= "<ul>";
if($c2 !== $mm1){
$c2 = $mm1;
$menu_arr .= "<li><a href='?cat=" . $mm1 . "'>" . htmlspecialchars($mn1) . "</a>";
}
//подпункты, 3 уровень
$menu_arr .= "<ul>";
if($mm2 !== null){
$menu_arr .= "<li><a href='?cat=" . $mm2 . "'>" . htmlspecialchars($mn2) . "</a></li>";
}
$menu_arr .= "</ul>";
//закрыли 2уровень
$menu_arr .= "</li></ul>";
}
//закрыли 1-й уровень
$menu_arr .= "</li>";
}
$menu_arr .= "</ul></div>";
print $menu_arr;
?>
|
Пункты меню по уровням выводятся из таблицы - надо сделать горизонтальное выпадающее меню. Все это нужно оформить в виде трехуровневого списка.
При добавлении третьего уровня добавляются ненужные закрывающие теги. Как можно поставить условие: если есть третий уровень, то теги не добавляем? | |
|
|