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的日期与时间函数技巧
Apr 24 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
php检测网页是否被百度收录的函数代码
Oct 09 PHP
PHP禁止个别IP访问网站
Oct 30 PHP
php解决约瑟夫环示例
Apr 09 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 PHP
PHP实现图片批量打包下载功能
Mar 01 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 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 正则表达式小结
2009/08/31 PHP
PHP parse_url 一个好用的函数
2009/10/03 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
php发送post请求的三种方法
2014/02/11 PHP
JQuery包裹DOM节点的方法
2015/06/11 Javascript
jQuery.each使用详解
2015/07/07 Javascript
js文字横向滚动特效
2015/11/11 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
javascript如何创建对象
2016/08/29 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
Python中用Spark模块的使用教程
2015/04/13 Python
python处理html转义字符的方法详解
2016/07/01 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
python使用opencv读取图片的实例
2017/08/17 Python
对python的输出和输出格式详解
2018/12/08 Python
python实现可逆简单的加密算法
2019/03/22 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
国外的一些J2EE面试题一
2012/10/13 面试题
市场营销毕业生自荐信
2013/11/23 职场文书
外语学院毕业生的自我鉴定
2013/11/28 职场文书
营业员演讲稿
2013/12/30 职场文书
委托证明模板
2014/09/16 职场文书
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
python flappy bird小游戏分步实现流程
2022/02/15 Python
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL