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 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)续四
Apr 03 PHP
PHP中基本符号及使用方法
Mar 23 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
Jun 07 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
Jul 05 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
PHP中file_exists()判断中文文件名无效的解决方法
Nov 12 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
php实现的读取CSV文件函数示例
Feb 07 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
PHP封装curl的调用接口及常用函数详解
May 31 PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 11 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 sprintf()函数让你的sql操作更安全
2008/07/23 PHP
一些php技巧与注意事项分析
2011/02/03 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
写自已的js类库需要的核心代码
2012/07/16 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
jquery map方法使用示例
2014/04/23 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
浅谈vue项目可以从哪些方面进行优化
2018/05/05 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python中使用Inotify监控文件实例
2015/02/14 Python
Django中使用group_by的方法
2015/05/26 Python
Python实现的单向循环链表功能示例
2017/11/10 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
干部竞争上岗演讲稿
2014/09/11 职场文书
新郎新娘答谢词
2015/01/04 职场文书
淮海战役观后感
2015/06/11 职场文书
父亲去世追悼词
2015/06/23 职场文书
技术入股协议书
2016/03/22 职场文书
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技
Android Studio 计算器开发
2022/05/20 Java/Android