当前位置:Gxlcms > PHP教程 > 一个简单的多级树型菜单的代码

一个简单的多级树型菜单的代码

时间:2021-07-01 10:21:17 帮助过:29人阅读

  1. //树型目录结构模板程序

  2. //菜单目录库字段说明:
  3. //menu_id 菜单项目 id
  4. //menu 菜单名称
  5. //menu_grade 菜单等级 1 为主菜单 2 为二级菜单 ........
  6. //menu_superior 上一级菜单 id 号

  7. function my_menu($menu_content,$i,$menu_grade_temp,$menu_superior_temp)

  8. {
  9. global $PHP_SELF;
  10. $temp1=$menu_grade_temp+1;
  11. $menu_superior_temp_array=split("/",$menu_superior_temp);
  12. for ($t=0;$t<$i;$t++)
  13. {
  14. $menu_array=split("/",$menu_content[$t]);
  15. If(($menu_array[2]==$menu_grade_temp)&&($menu_array[3]==$menu_superior_temp_array[$menu_grade_temp-1]))
  16. {
  17. for($p=1;$p<=$menu_grade_temp;$p++){echo " ";}
  18. $temp3=$menu_superior_temp_array;
  19. $temp3[$menu_grade_temp]=$menu_array[0];
  20. $temp2=implode("/",$temp3);
  21. if ($menu_array[0]==$menu_superior_temp_array[$temp1-1])
  22. {
  23. $temp5=$temp1-1;
  24. $temp3[$menu_grade_temp]="";
  25. $temp6=implode("/",$temp3);
  26. echo "$menu_array[1]
    ";
  27. my_menu($menu_content,$i,$temp1,$temp2);
  28. }
  29. else
  30. {
  31. $temp3[$menu_grade_temp+1]="";
  32. $temp6=implode("/",$temp3);
  33. echo "$menu_array[1]
    ";
  34. }
  35. }
  36. }
  37. }
  38. // 连接 MySql 数据库
  39. $db_host="localhost";
  40. $db_user="dkj";
  41. $db_password="123";
  42. $db_name="test";
  43. mysql_connect($db_host,$db_user,$db_password);
  44. mysql_select_db($db_name);

  45. //从数据库中取得数据

  46. $query_string="select * from menu order by menu_grade";
  47. $db_data=mysql_query($query_string);

  48. //第一次执行初始化

  49. if ($menu_grade_temp=="")
  50. {
  51. $menu_superior_temp=0;
  52. }

  53. //将所有的信息读入数组,并统计数组个数

  54. $i=0;
  55. while (list($menu_id,$menu,$menu_grade,$menu_superior)=mysql_fetch_row($db_data))
  56. {
  57. $menu_content[$i]=$menu_id."/".$menu."/".$menu_grade."/".$menu_superior;
  58. $i++;
  59. }
  60. my_menu($menu_content,$i,1,$menu_superior_temp);

  61. /* 附数据库结构及模拟数据

  62. # 主机: localhost 数据库 : test
  63. # 数据表的结构 'menu'
  64. CREATE TABLE menu (
  65. menu_id int(11) NOT NULL auto_increment,
  66. menu varchar(20) NOT NULL,
  67. menu_grade int(11) NOT NULL,
  68. menu_superior int(11) NOT NULL,
  69. UNIQUE menu_id (menu_id)
  70. );

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

  72. INSERT INTO menu VALUES( '1', '计算机', '1', '0');
  73. INSERT INTO menu VALUES( '2', '编程', '2', '1');
  74. INSERT INTO menu VALUES( '3', '网络', '2', '1');
  75. INSERT INTO menu VALUES( '4', 'PHP与MySql', '3', '2');
  76. INSERT INTO menu VALUES( '5', 'C语言', '3', '2');
  77. INSERT INTO menu VALUES( '6', '网页制作', '3', '3');
  78. INSERT INTO menu VALUES( '7', 'TCP、IP协议', '3', '3');
  79. INSERT INTO menu VALUES( '8', '数学', '1', '0');
  80. INSERT INTO menu VALUES( '9', '高等数学', '2', '8');
  81. INSERT INTO menu VALUES( '10', '线性代数', '3', '9');
  82. INSERT INTO menu VALUES( '11', '离散数学', '3', '9');
  83. INSERT INTO menu VALUES( '12', '初等数学', '2', '8');
  84. INSERT INTO menu VALUES( '13', '文学', '1', '0');
  85. INSERT INTO menu VALUES( '14', '程序员之家', '2', '13');
  86. INSERT INTO menu VALUES( '15', 'php', '4', '4');
  87. INSERT INTO menu VALUES( '16', 'mysql', '4', '4');
  88. */
  89. ?>

人气教程排行