本例的多級樹型選單,在網路中有很多應用,在絕大部分論壇中都有此結構,它一方面可以節省很多螢幕空間,另一方面給人一種美感,有很強的層次感。
下面就是這個通用的多級樹型選單程式的源程式。
//選單目錄庫說明
//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=("/",$menu_superior_temp;
for($t=0;$t
$te***=$menu_superior_temp_array;
$te***[$menu_grade_temp]=$menu_array[0];
$temp2=implode("/",$te***);
if($menu_array[0]==$menu_superior_temp_array//函式體到此結束
//連線mysql資料庫
$db_host="localhost";
$db_user="root";
$db_password="";
$db_name="treemenu";
mysql_connect($db_host,$db_user,$db_password);
mysql_select_db($db_name);
//從資料庫中取得資料
$quer_string="select*from menu order by meny_grade";
$db_data=mysql_query($query_string);
//第一次執行初始化
if($menu_grade_temp=="")
$menu_superior_temp=0;
//將所有的資訊讀入陣列,並統計陣列個數
$i=0;
while(list($menu_id,$menu_grade,$menu_superior)=mysql_fetch_row($db_data))
4menu_content[$i]=$menu_id."/".$menu."/".$menu_grade."/".$menu_superior;
$i++;
my_menu($menu_content,$i,1,$menu_superior_temp);//執行此函式
另外附資料庫結構及模擬資料
#主機:localhost 資料庫:treemenu
#資料表的結構 『treemenu'
#資料庫的表結構如下:
create table treemenu
menu_id int(11) not null auto_increment,
menu varchar(20) not null,
menu_grade int(11) not null,
unique menu_id(menu_id));
模擬的資料庫內容如下:
insert into treemenu values('1','小學課程','1','0');
insert into treemenu values('2','大學課程','1','0');
insert into treemenu values('3','高中課程','1','0');
insert into treemenu values('4','初中課程','1','0');
insert into treemenu values('5','計算機專業','2','2');
insert into treemenu values('6','財經專業','2','2');
insert into treemenu values('7','基礎課','3','5');
insert into treemenu values('8','專業課','3','5');
insert into treemenu values('9','高等數學','4,'7');
insert into treemenu values('10','線性代數','4','7');
insert into treemenu values('11','c語言','4','8');
insert into treemenu values('12','pascal語言','4','8');
insert into treemenu values('13','vc++','4','8');
程式要點:
(1) 對資料庫的操作
(2) 函式遞迴的演算法
簡要分析:在原始碼的開始是乙個函式,該函式主要是通過函式遞迴的演算法來完成程式所要求的功能,函式定義之後,便可以對資料庫操作,包括與資料庫的連線以及對資料庫執行查詢,然後通過**獲得執行函式所需要的引數,最後便是執行函式,得出執行結果。因為本例是使用函式遞迴的演算法,所以不限選單級數,另外選單內容全儲存在mysql資料庫中,所以選單專案可以在phpmyadmin中增加、修改、刪除。
標籤:好文不易,鼓勵一下吧!
php 樹狀 選單 用PHP實現多級樹型選單
樹型目錄結構模板程式 選單目錄庫欄位說明 menu id 選單專案 id menu 選單名稱 menu grade 選單等級 1 為主選單 2 為二級選單 menu superior 上一級選單 id 號 function my menu menu content,i,menu grade temp...
樹狀選單實現
多級選單程式設計實現 選單結構採用樹狀結構,由若干個節點組成多級選單。每個節點由當前層級節點數 標題,操作函式 父節點和子節點構成,如下 所示。typedef struct menumenu typedef 這裡我們實現乙個多 管理選單 我的 經典 曲目1 曲目2 流行 我的文件 電子書 說明書 實...
如何用PHP求素數
header content type text html charset utf 8 設定編碼格式 計算素數,素數是只能被自己和1整除的正整數,特別指出的是我們規定1不是素數 方法一 定義乙個函式計算素數 function prime number n if c 2 如果能夠整除這個數只有1個或者...