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


Posted in PHP onOctober 09, 2006

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 相关文章推荐
AJAX for PHP简单表数据查询实例
Jan 02 PHP
在PHP中使用Sockets 从Usenet中获取文件
Jan 10 PHP
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 PHP
php中关于socket的系列函数总结
May 18 PHP
php接口技术实例详解
Dec 07 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 PHP
PHP中的超全局变量
Oct 09 #PHP
我常用的几个类
Oct 09 #PHP
多文件上传的例子
Oct 09 #PHP
PHP4(windows版本)中的COM函数
Oct 09 #PHP
实现树状结构的两种方法
Oct 09 #PHP
PHP邮件专题
Oct 09 #PHP
Content-type 的说明
Oct 09 #PHP
You might like
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
javascript 二分法(数组array)
2010/04/24 Javascript
ajax 缓存 问题 requestheader
2010/08/01 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
Python中__name__的使用实例
2015/04/14 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
python保存数据到本地文件的方法
2018/06/23 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
django连接mysql数据库及建表操作实例详解
2019/12/10 Python
python类中super() 的使用解析
2019/12/19 Python
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
高中生自我鉴定范文
2013/10/30 职场文书
夜班门卫岗位职责
2013/12/09 职场文书
物理教师自荐信范文
2013/12/28 职场文书
给孩子的新年寄语
2014/04/08 职场文书
六查六看六改心得体会
2014/10/14 职场文书
个人批评与自我批评
2014/10/15 职场文书
万能检讨书2000字
2014/10/17 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
高中信息技术教学反思
2016/02/16 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
详解SQL的窗口函数
2022/04/21 Oracle