当前位置: 移动技术网 > IT编程>开发语言>PHP > PHP树的代码,可以嵌套任意层

PHP树的代码,可以嵌套任意层

2019年05月22日  | 移动技术网IT编程  | 我要评论

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--;
}


?>

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网