用PHP實現多級樹型菜單

來源:互聯網
上載者:User
關鍵字 用PHP實現多級樹型菜單
 //樹型目錄結構模板程式 
 //菜單目錄庫欄位說明: 
 //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 "$menu_array[1]
"; 
     my_menu($menu_content,$i,$temp1,$temp2); 
    } 
    else 
    { 
     $temp3[$menu_grade_temp+1]=""; 
     $temp6=implode("/",$temp3); 
     echo "$menu_array[1]
"; 
    } 
   } 
  } 
 } 
 // 串連 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'); 
*/ 
?> 
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.