Вот тебе пример из двух функций. Для начала понадобится таблица:
Code
CREATE TABLE 'menu' (
'id_mnu' int(11) NOT NULL AUTO_INCREMENT,
'parentid' int(10) unsigned NOT NULL DEFAULT '0',
'title' varchar(50) NOT NULL DEFAULT '',
'link' varchar(255) NOT NULL DEFAULT '',
'position' tinyint(3) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY ('id_mnu')
) ENGINE=MyISAM
Первая функция для вывода топовых ссылок:
Code
function getmenu($res){
$out = "";
$row = mysql_num_rows($res);
while($resmnu = mysql_fetch_assoc($res)){
$id = $resmnu["id_mnu"];// id ссылки меню
$title = $resmnu["title"];// Название ссылки
$link = $resmnu["link"];// url ссылки
$out .= "<ul><li><a href=\"$link\">$title</a>";
$out .= getsub($id);// Проверяем наличие подменю
$out .= "</li></ul>";
}
return $out;
}
Вторая функция, проверка подменю:
Code
function getsub($parent) {
$query = "SELECT * FROM menu WHERE parentid = $parent ORDER BY position";
$res = mysql_query($query);
$row = mysql_num_rows($res);
$out = "";
if($row > 0){
$out = "<ul>";
while($resmnu = mysql_fetch_assoc($res)){
$id = $resmnu["id_mnu"];
$title = $resmnu["title"];
$link = $resmnu["link"];
$out .= "<li><a href=\"$link\">$title</a>";
$out .= getsub($id);// проверяем наличие подменю следующих уровней
$out .= "</li>";
}
$out .= "</ul>";
}
return $out;
}