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 编程安全性小结
Jan 08 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
php模块memcache和memcached区别分析
Jun 14 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
PHP提交表单失败后如何保留已经填写的信息
Jun 20 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP基于mcript扩展实现对称加密功能示例
Feb 21 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 PHP
PHP unset函数原理及使用方法解析
Aug 14 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
桌面中心(二)数据库写入
2006/10/09 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
php通过各种函数判断0和空
2020/07/04 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
常用一些Javascript判断函数
2012/08/14 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
一个Python最简单的接口自动化框架
2018/01/02 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
实习护理工作自我评价
2013/09/25 职场文书
个人求职信范文分享
2014/01/06 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
js前端图片加载异常兜底方案
2022/06/21 Javascript