PHP樹的代碼,可以嵌套任意層
更新時間:2006年10月09日 00:00:00 作者:
PHP樹的代碼,可以嵌套任意層 <?
file://建立樹的主要函數(shù),傳遞的參數(shù)為根節(jié)點(diǎn)的編號和根節(jié)點(diǎn)的標(biāo)題
function create_tree($rootid,$roottilte){
print_parent_from_rootsortid($rootid,$roottilte);
}
file://打印根節(jié)點(diǎn)div頭的函數(shù)
function print_parent_from_rootsortid($rootid,$roottilte){
$parent_fullname="R".$rootid."Parent"; file://div 父級區(qū)別標(biāo)志
$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 子級區(qū)別標(biāo)志
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://循環(huán)調(diào)用打印子級編碼函數(shù)
}
echo "</DIV>";
}
file://判斷是否是末級標(biāo)志,并且打印子級編碼的函數(shù)
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://輸出節(jié)點(diǎn)之間間距空格的循環(huán)
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子標(biāo)志頭
find_allchild_from_rootsortid($Section_No); file://查找子級別內(nèi)容-----嵌套遞歸函數(shù)甲
echo "</DIV>"; file://打印div子標(biāo)尾部
}
}
file://查詢所有子級編碼的函數(shù)
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://打印所有的子級節(jié)點(diǎn)-----嵌套遞歸函數(shù)乙
}
$num--;
}
?>
相關(guān)文章
php面向?qū)ο笕ヂ?(六)__set() __get() __isset() __unset()的用法
一般來說,總是把類的屬性定義為private,這更符合現(xiàn)實(shí)的邏輯。但是,對屬性的讀取和賦值操作是非常頻繁的,因此在PHP5 中,預(yù)定義了兩個函數(shù)“__get()”和“__set()”來獲取和賦值其屬性,以及檢查屬性的“__isset()”和刪除屬性的方法“__unset()”。2009-09-09Mysql的GROUP_CONCAT()函數(shù)使用方法
GROUP_CONCAT語法與實(shí)例代碼2008-03-03PHP基礎(chǔ)教程(php入門基礎(chǔ)教程)一些code代碼
PHP基礎(chǔ)教程(適合有編程基礎(chǔ)的,但是對PHP很陌生的新手 --教程主要以code的形式表現(xiàn))2013-01-01