一個簡單的多級樹型菜單的代碼

來源:互聯網
上載者:User
  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. ?>

複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.