PHP的开合式多级菜单程序


Posted in PHP onOctober 09, 2006

# --------------------------------------------------------
# 数据表的结构 '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)
);
# -------------------------------------------------
#数据表内的内容,根据具体情况而定
# -------------------------------------------------
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');

<?
//树型目录结构模板程序
//菜单目录库字段说明:
//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><br>";
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><br>";
}
}
}
}
// 连接 MySql 数据库
$db_host="localhost";
$db_user="root";
$db_password="zmxj";
$db_name="joss";
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);
?>

PHP 相关文章推荐
PHP的面向对象编程
Oct 09 PHP
PHP chmod 函数与批量修改文件目录权限
May 10 PHP
PHP企业级应用之常见缓存技术篇
Jan 27 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 PHP
PHP中的use关键字概述
Jul 23 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
Nov 04 PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 PHP
php使用cookie保存登录用户名的方法
Jan 26 PHP
PHP如何透过ODBC来存取数据库
Oct 09 #PHP
在线短消息收发的程序,不用数据库
Oct 09 #PHP
PHP网站提速三大“软”招
Oct 09 #PHP
用PHP发电子邮件
Oct 09 #PHP
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 #PHP
一段php加密解密的代码
Oct 09 #PHP
PHP开发文件系统实例讲解
Oct 09 #PHP
You might like
网站用php实现paypal整合方法
2010/11/28 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
php获取url参数方法总结
2014/11/13 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
javascript的内存管理详解
2013/08/07 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
Javascript实现一朵从含苞到绽放的玫瑰
2019/03/30 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
python类和函数中使用静态变量的方法
2015/05/09 Python
详解Python文本操作相关模块
2017/06/22 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
python基于opencv实现人脸识别
2021/01/04 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
weblogic面试题
2016/03/07 面试题
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
教师对学生的评语
2014/04/28 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
运动会开幕词
2015/01/28 职场文书
机动车交通事故协议书
2015/01/29 职场文书
家长反馈意见及建议
2015/06/03 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
四年级语文教学反思
2016/03/03 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang
Python竟然能剪辑视频
2021/05/25 Python