用PHP实现多级树型菜单


Posted in PHP onOctober 09, 2006

<?   
  //树型目录结构模板程序   
  //菜单目录库字段说明:   
  //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="dkj";   
  $db_password="123";   
  $db_name="test";   
  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);   

  /* 附数据库结构及模拟数据   
  # phpMyAdmin MySQL-Dump   
  #   
  # 主机: localhost 数据库 : test   
  # --------------------------------------------------------   

  #   
  # 数据表的结构 '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)   
  );   

  #   
  # 导出下面的数据库内容 'menu'   
  #   

  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');   
*/   
?>  

PHP 相关文章推荐
php array_unique之后json_encode需要注意
Jan 02 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
php5.5中类级别的常量使用介绍
Oct 02 PHP
CI(CodeIgniter)框架介绍
Jun 09 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
Sep 23 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
Yii中Model(模型)的创建及使用方法
Dec 28 PHP
PHP 输出缓冲控制(Output Control)详解
Aug 25 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
php常用正则函数实例小结
Dec 29 PHP
PHP中number_format()函数的用法讲解
Apr 08 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 PHP
PHP4在Windows2000下的安装
Oct 09 #PHP
模仿OSO的论坛(五)
Oct 09 #PHP
基于mysql的论坛(2)
Oct 09 #PHP
基于mysql的论坛(1)
Oct 09 #PHP
基于mysql的论坛(4)
Oct 09 #PHP
基于mysql的论坛(5)
Oct 09 #PHP
基于mysql的论坛(6)
Oct 09 #PHP
You might like
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
php中使用url传递数组的方法
2015/02/11 PHP
PHP检测用户语言的方法
2015/06/15 PHP
微信小程序发送订阅消息的方法(php 为例)
2019/10/30 PHP
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
python实现对一个完整url进行分割的方法
2015/04/29 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
pandas object格式转float64格式的方法
2018/04/10 Python
python数组循环处理方法
2019/08/26 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
办公文员的工作岗位职责
2013/11/12 职场文书
先进个人事迹材料
2014/01/25 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
公司庆典欢迎词
2015/01/26 职场文书
公司会议开幕词
2015/01/29 职场文书
实验室安全管理制度
2015/08/05 职场文书
python如何做代码性能分析
2021/04/26 Python