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 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
用PHP 快速生成 Flash 动画的方法
Mar 06 PHP
PHP+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
PHP学习笔记之二 php入门知识
Jan 12 PHP
PHP 过滤页面中的BOM(实现代码)
Jun 29 PHP
php异常处理使用示例
Feb 25 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
PHP小教程之实现链表
Jun 09 PHP
smarty中post用法实例
Nov 28 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 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生成excel列序号代码实例
2013/12/24 PHP
php解析url的三个示例
2014/01/20 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
Array.prototype.slice 使用扩展
2010/06/09 Javascript
js日历功能对象
2012/01/12 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
vue双向绑定及观察者模式详解
2019/03/19 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
勤奋学习演讲稿
2014/05/10 职场文书
学生检讨书怎么写
2014/10/09 职场文书
用CSS3画一个爱心
2021/04/27 HTML / CSS
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL