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 相关文章推荐
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
深入PHP curl参数的详解
Jun 17 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
PHP代码优化之成员变量获取速度对比
Feb 28 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
PHP类的封装与继承详解
Sep 29 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
php执行多个存储过程的方法【基于thinkPHP】
Nov 08 PHP
PHP实现微信退款的方法示例
Mar 26 PHP
php给数组赋值的实例方法
Sep 26 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 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图像处理函数大全(推荐收藏)
2013/07/11 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
Javascript实现时间倒计时效果
2017/07/15 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python+mysql实现教务管理系统
2019/02/20 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
党员年终民主评议的自我评价
2013/11/05 职场文书
幼儿园元旦亲子活动方案
2014/02/17 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
校运会广播稿
2015/08/19 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS
MyBatis 动态SQL全面详解
2021/10/05 MySQL