Heim  >  Artikel  >  Backend-Entwicklung  >  一个简单的多级树型菜单的代码

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

WBOY
WBOYOriginal
2016-07-25 09:00:43752Durchsuche
  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{
  13. $menu_array=split("/",$menu_content[$t]);
  14. If(($menu_array[2]==$menu_grade_temp)&&($menu_array[3]==$menu_superior_temp_array[$menu_grade_temp-1]))
  15. {
  16. for($p=1;$p$temp3=$menu_superior_temp_array;
  17. $temp3[$menu_grade_temp]=$menu_array[0];
  18. $temp2=implode("/",$temp3);
  19. if ($menu_array[0]==$menu_superior_temp_array[$temp1-1])
  20. {
  21. $temp5=$temp1-1;
  22. $temp3[$menu_grade_temp]="";
  23. $temp6=implode("/",$temp3);
  24. echo "$menu_array[1]
    ";
  25. my_menu($menu_content,$i,$temp1,$temp2);
  26. }
  27. else
  28. {
  29. $temp3[$menu_grade_temp+1]="";
  30. $temp6=implode("/",$temp3);
  31. echo "$menu_array[1]
    ";
  32. }
  33. }
  34. }
  35. }
  36. // 连接 MySql 数据库
  37. $db_host="localhost";
  38. $db_user="dkj";
  39. $db_password="123";
  40. $db_name="test";
  41. mysql_connect($db_host,$db_user,$db_password);
  42. mysql_select_db($db_name);
  43. //从数据库中取得数据

  44. $query_string="select * from menu order by menu_grade";
  45. $db_data=mysql_query($query_string);
  46. //第一次执行初始化

  47. if ($menu_grade_temp=="")
  48. {
  49. $menu_superior_temp=0;
  50. }
  51. //将所有的信息读入数组,并统计数组个数

  52. $i=0;
  53. while (list($menu_id,$menu,$menu_grade,$menu_superior)=mysql_fetch_row($db_data))
  54. {
  55. $menu_content[$i]=$menu_id."/".$menu."/".$menu_grade."/".$menu_superior;
  56. $i++;
  57. }
  58. my_menu($menu_content,$i,1,$menu_superior_temp);
  59. /* 附数据库结构及模拟数据

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

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn