PHP樹的代碼,可以嵌套任意層<? file://建立樹的主要函數,傳遞的參數為根節點的編號和根節點的標題 function create_tree($rootid,$roottilte){ print_parent_from_rootsortid($rootid,$roottilte); } file://打印根節點div頭的函數 function print_parent_from_rootsortid($rootid,$roottilte){ $parent_fullname="R".$rootid."Parent"; file://div 父級區別標志 $parent_id="R".$rootid; $parent_pic="R".$rootid."img"; echo " <DIV class=parent id=$parent_fullname><A href=\"http://www.csdn.net/expert/menu.shtm#\" onclick=\"expandIt('$parent_id'); return false\"><IMG border=0 height=13 id=$parent_pic src=\"image/folderclosed000.gif\" width=19>$roottilte</A></DIV>";
global $cursor_tree; $Bottom_Flag=0; $len=strlen($rootid)+2; file://子級編碼為父級編碼長度加2 $query = "SELECT ResourceSortNo,ResourceSortName,SectionBottomFlag From TbSort Where length(ResourceSortNo)=$len and ResourceSortNo like '$rootid%'"; file://sql查詢語句 ora_parse($cursor_tree, $query) or die; ora_exec($cursor_tree);
$child_fullname="R".$rootid."Child"; file://div 子級區別標志 echo "<DIV class=child id=$child_fullname>"; file://打印一個div子級頭 while(ora_fetch($cursor_tree)){ $Sort_No = trim(ora_getcolumn($cursor_tree,0)); $Sort_Title = trim(ora_getcolumn($cursor_tree,1)); $Bottom_Flag = trim(ora_getcolumn($cursor_tree,2)); print_child_from_rootsortid($Sort_Title,$Sort_No, $Bottom_Flag); file://循環調用打印子級編碼函數 } echo "</DIV>";
} file://判斷是否是末級標志,并且打印子級編碼的函數 function print_child_from_rootsortid($Section_Title,$Section_No,$Bottom_Flag){ global $num; $len=2*$num+2; for($j=0;$j<$len;$j++){ echo " "; } file://輸出節點之間間距空格的循環
if($Bottom_Flag==1){ echo " <IMG border=0 height=13 src=\"image/folderclosed000.gif\" width=19> <A href=\"http://www.csdn.net/expert/exchange.asp\" target=forum>$Section_Title</A><BR>"; }else{ $p_id="R".$Section_No; $p_pic="R".$Section_No."img"; echo " <IMG border=0 height=13 id=$p_pic src=\"image/folderclosed000.gif\" width=19> <A href=\"http://www.csdn.net/expert/exchange.asp\" onclick=\"expandIt('$p_id'); return false\">$Section_Title</A><BR>"; $child_fullname="R".$Section_No."Child"; echo "<DIV class=child id=$child_fullname>"; file://打印div子標志頭 find_allchild_from_rootsortid($Section_No); file://查找子級別內容-----嵌套遞歸函數甲 echo "</DIV>"; file://打印div子標尾部
}
} file://查詢所有子級編碼的函數 function find_allchild_from_rootsortid($Section_No){ global $handle,$num; $num++; $cursor_ary[$num] = ora_open($handle); $len=strlen($Section_No)+2; file://μ?μ?×ó??±e±ào?3¤?è $query = "SELECT ResourceSortNo,ResourceSortName,SectionBottomFlag From TbSort Where length(ResourceSortNo)=$len and ResourceSortNo like '$rootid%'"; file://sql查詢語句 ora_parse($cursor_ary[$num], $query) or die; ora_exec($cursor_ary[$num]); while(ora_fetch($cursor_ary[$num])) { $Sort_Title = trim(ora_getcolumn($cursor_ary[$num],1)); $Sort_No = trim(ora_getcolumn($cursor_ary[$num],0)); $Bottom_Flag = trim(ora_getcolumn($cursor_ary[$num],2)); print_child_from_rootsortid($Sort_Title,$Sort_No,$Bottom_Flag); file://打印所有的子級節點-----嵌套遞歸函數乙 } $num--; }
?>
|