当前位置:首页 > 用PHP实现多级树型菜单

用PHP实现多级树型菜单

点击次数:1593  更新日期:2011-01-02
\n

<?
//树型目录结构模板程序
//菜单目录库字段说明:
//menu_id 菜单项目 id
//menu 菜单名称
//menu_grade 菜单等级 1 为主菜单 2 为二级菜单 ……..
//menu_superior 上一级菜单 id 号

function my_menu(menu_content,i,menu_grade_temp,menu_superior_temp)
{
global PHP_SELF;
temp1=menu_grade_temp+1;
menu_superior_temp_array=split(“/”,menu_superior_temp);
for (t=0;t<i;t++)
{
menu_array=split(“/”,menu_content[t]);
If((menu_array[2]==menu_grade_temp)&&(menu_array[3]==menu_superior_temp_array[menu_grade_temp-1]))
{
for(p=1;p<=menu_grade_temp;p++){echo ” “;}
temp3=menu_superior_temp_array;
temp3[menu_grade_temp]=menu_array[0];
temp2=implode(“/”,temp3);
if (menu_array[0]==menu_superior_temp_array[temp1-1])
{
temp5=temp1-1;
temp3[menu_grade_temp]=”";
temp6=implode(“/”,temp3);
echo “<a href=\\”PHP_SELF?menu_grade_temp=”.temp5.”&menu_superior_temp=temp6\\”>menu_array[1]</a>
“;
my_menu(menu_content,i,temp1,temp2);
}
else
{
temp3[menu_grade_temp+1]=”";
temp6=implode(“/”,temp3);
echo “<a href=\\”PHP_SELF?menu_grade_temp=”.temp1.”&menu_superior_temp=temp6\\”>menu_array[1]</a>
“;
}
}
}
}
// 连接 MySql 数据库
db_host=”localhost”;
db_user=”dkj”;
db_password=”123″;
db_name=”test”;
mysql_connect(db_host,db_user,db_password);
mysql_select_db(db_name);

//从数据库中取得数据
query_string=”select * from menu order by menu_grade”;
db_data=mysql_query(query_string);

//第一次执行初始化
if (menu_grade_temp==”")
{
menu_superior_temp=0;
}

//将所有的信息读入数组,并统计数组个数
i=0;
while (list(menu_id,menu,menu_grade,menu_superior)=mysql_fetch_row(db_data))
{
menu_content[i]=menu_id.”/”.menu.”/”.menu_grade.”/”.menu_superior;
i++;
}
my_menu(menu_content,i,1,menu_superior_temp);

/* 附数据库结构及模拟数据
# phpMyAdmin MySQL-Dump
#
# 主机: localhost 数据库 : test
# ——————————————————–

#
# 数据表的结构 ‘menu’
#

CREATE TABLE menu (
menu_id int(11) NOT NULL auto_increment,
menu varchar(20) NOT NULL,
menu_grade int(11) NOT NULL,
menu_superior int(11) NOT NULL,
UNIQUE menu_id (menu_id)
);

#
# 导出下面的数据库内容 ‘menu’
#

INSERT INTO menu VALUES( ’1′, ‘计算机’, ’1′, ’0′);
INSERT INTO menu VALUES( ’2′, ‘编程’, ’2′, ’1′);
INSERT INTO menu VALUES( ’3′, ‘网络’, ’2′, ’1′);
INSERT INTO menu VALUES( ’4′, ‘PHP与MySql’, ’3′, ’2′);
INSERT INTO menu VALUES( ’5′, ‘C语言’, ’3′, ’2′);
INSERT INTO menu VALUES( ’6′, ‘网页制作’, ’3′, ’3′);
INSERT INTO menu VALUES( ’7′, ‘TCP、IP协议’, ’3′, ’3′);
INSERT INTO menu VALUES( ’8′, ‘数学’, ’1′, ’0′);
INSERT INTO menu VALUES( ’9′, ‘高等数学’, ’2′, ’8′);
INSERT INTO menu VALUES( ’10′, ‘线性代数’, ’3′, ’9′);
INSERT INTO menu VALUES( ’11′, ‘离散数学’, ’3′, ’9′);
INSERT INTO menu VALUES( ’12′, ‘初等数学’, ’2′, ’8′);
INSERT INTO menu VALUES( ’13′, ‘文学’, ’1′, ’0′);
INSERT INTO menu VALUES( ’14′, ‘中国文学’, ’2′, ’13′);
INSERT INTO menu VALUES( ’15′, ‘php’, ’4′, ’4′);
INSERT INTO menu VALUES( ’16′, ‘mysql’, ’4′, ’4′);
*/
?>

\n