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出现Cannot modify header information问题的解决方法大全
Apr 09 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
Apr 08 PHP
php防注入,表单提交值转义的实现详解
Jun 10 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
laravel 5 实现模板主题功能
Mar 02 PHP
WIN8.1下搭建PHP5.6环境
Apr 29 PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
PHP堆栈调试操作简单示例
Jun 15 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日期操作技巧小结
2016/06/25 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
2016/01/07 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
javascript垃圾收集机制的原理分析
2016/12/08 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
Python初学者常见错误详解
2019/07/02 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
python序列类型种类详解
2020/02/26 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
自荐书范文
2013/12/08 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
计算机毕业生求职信
2014/06/10 职场文书
婚庆公司计划书
2014/09/15 职场文书
公司员工培训管理制度
2015/08/04 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS