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 获取MSN好友列表的代码(2009-05-14测试通过)
Sep 09 PHP
深入PHP中的HashTable结构详解
Jun 13 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
php中require和require_once的区别说明
Feb 27 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
php函数连续调用实例分析
Jul 30 PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
微信支付PHP SDK ―― 公众号支付代码详解
Sep 13 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 PHP
Laravel+Intervention实现上传图片功能示例
Jul 09 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比较多维数组中值的大小排序实现代码
2012/09/08 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
原创javascript小游戏实现代码
2010/08/19 Javascript
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
2020/01/02 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
python基础之入门必看操作
2017/07/26 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Python批量发送post请求的实现代码
2018/05/05 Python
selenium获取当前页面的url、源码、title的方法
2019/06/12 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
统计每一学生的平均成绩
2014/06/06 面试题
什么是Rollback Segment
2013/04/22 面试题
11月红领巾广播稿
2014/01/17 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
活动总结书怎么写
2015/05/11 职场文书
千手观音观后感
2015/06/03 职场文书
2016年教师新年寄语
2015/08/18 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python