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 相关文章推荐
Zend公司全球首推PHP认证
Oct 09 PHP
PHP+DBM的同学录程序(2)
Oct 09 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
Jun 03 PHP
深入php var_dump()函数的详解
Jun 05 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 PHP
PHP框架Laravel插件Pagination实现自定义分页
Apr 22 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
Oct 08 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 PHP
php实现微信企业付款到个人零钱功能
Oct 09 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中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
php内嵌函数用法实例
2015/03/20 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
显示js对象所有属性和方法的函数
2009/10/16 Javascript
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
jquery蒙版控件实现代码
2010/12/08 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
JavaScript fetch接口案例解析
2018/08/30 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
python查找指定具有相同内容文件的方法
2015/06/28 Python
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
暑期实践思想汇报
2014/01/06 职场文书
广播体操比赛口号
2014/06/10 职场文书
航空学院求职信
2014/06/11 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
家长学校教学计划
2015/01/19 职场文书
个人总结格式范文
2015/03/09 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
mysql优化
2021/04/06 MySQL
一行代码python实现文件共享服务器
2021/04/22 Python
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers
JavaScript前端面试组合函数
2022/06/21 Javascript
python中使用redis用法详解
2022/12/24 Redis