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 foreach循环使用详解与实例代码
May 08 PHP
PHP 基于文件头的文件类型验证类函数
May 01 PHP
深入解析php中的foreach函数
Aug 31 PHP
8个PHP程序员常用的功能汇总
Dec 18 PHP
php实现将上传word文件转为html的方法
Jun 03 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
php支付宝APP支付功能
Jul 29 PHP
PHP微信H5支付开发实例
Jul 25 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 PHP
浅谈PHP7中的一些小技巧
May 29 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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
把PHP安装为Apache DSO
2006/10/09 PHP
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
深入了解JavaScript 私有化
2019/05/30 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
python 解析html之BeautifulSoup
2009/07/07 Python
python使用win32com库播放mp3文件的方法
2015/05/30 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
python numpy实现rolling滚动案例
2020/06/08 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
千元咖啡店的创业计划书范文
2013/12/29 职场文书
大学社团活动策划书
2014/01/26 职场文书
幼儿教师工作感言
2014/02/14 职场文书
出国签证在职证明范本
2014/11/24 职场文书
2014财务年终工作总结
2014/12/08 职场文书
荆州古城导游词
2015/02/06 职场文书
学校会议通知范文
2015/04/15 职场文书
公司处罚决定书
2015/06/24 职场文书
Python实现8种常用抽样方法
2021/06/27 Python
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS