PHP树的代码,可以嵌套任意层
程序员文章站
2022-04-28 15:43:51
php树的代码,可以嵌套任意层
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--;
}
?>
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--;
}
?>
上一篇: php 移除数组重复元素的一点说明
下一篇: phpmail类发送邮件函数代码