ホームページ  >  記事  >  バックエンド開発  >  単純な複数レベルのツリー メニューのコード

単純な複数レベルのツリー メニューのコード

WBOY
WBOYオリジナル
2016-07-25 09:00:43750ブラウズ
  1. //ツリーディレクトリ構造テンプレートプログラム

  2. //メニューディレクトリライブラリフィールドの説明:
  3. //menu_idメニュー項目ID
  4. //メニューメニュー名
  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. // MySql データベースに接続します
  38. $db_host="localhost";
  39. $db_user="dkj";
  40. $db_password="123";
  41. $db_name="test";
  42. mysql_connect($db_host ,$db_user,$db_password);
  43. mysql_select_db($db_name);

  44. //データベースからデータを取得します

  45. $query_string="select * menu_grade によるメニュー順序"; mysql_query($query_string);

  46. //初期化の最初の実行

  47. if ($menu_grade_temp=="")
  48. {
  49. $menu_superior_temp=0;
  50. }
  51. < p>//すべての情報を配列に読み込み、配列の数を数えます
  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. < ;p>#次のデータベース コンテンツ 'menu'
  70. INSERT INTO menu VALUES( '1', 'Computer', '1', '0');
  71. INSERT INTO menu VALUES( '2', 'Programming', ' 2', '1' );
  72. INSERT INTO メニュー VALUES( '3', 'Network', '2', '1');
  73. INSERT INTO メニュー VALUES( '4', 'PHP と MySql', '3' , '2');
  74. INSERT INTO menu VALUES( '5', 'C言語', '3', '2');
  75. INSERT INTO menu VALUES( '6', 'Webページ制作', '3', ' 3');
  76. INSERT INTO メニュー VALUES( '7', 'TCP, IP プロトコル', '3', '3');
  77. INSERT INTO メニュー VALUES( '8', 'Math', '1', '0 ');
  78. INSERT INTO メニュー VALUES( '9', 'Advanced Mathematics', '2', '8');
  79. INSERT INTO メニュー VALUES( '10', '線形代数', '3', '9') ;
  80. INSERT INTO メニューVALUES( '11', '離散数学', '3', '9');
  81. INSERT INTO メニュー VALUES( '12', '初級数学', '2', '8');
  82. INSERT INTO メニュー VALUES( '13', 'Literature', '1', '0');
  83. INSERT INTO メニュー VALUES( '14', 'Programmer's Home', '2', '13');
  84. INSERT INTO メニュー VALUES( '15' , 'php', '4', '4');
  85. INSERT INTO menu VALUES( '16', 'mysql', '4', '4');
  86. */
  87. ?> ;

コードをコピー

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。