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 相关文章推荐
phpmyadmin操作流程
Oct 09 PHP
15种PHP Encoder的比较
Mar 06 PHP
PHP base64+gzinflate压缩编码和解码代码
Oct 03 PHP
判断php数组是否为索引数组的实现方法
Jun 13 PHP
php json_encode值中大括号与花括号区别
Sep 30 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
php上传图片类及用法示例
May 11 PHP
Yii2配置Nginx伪静态的方法
May 05 PHP
PHP查询分页的实现代码
Jun 09 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
php生成微信红包数组的方法
Sep 05 PHP
php装饰者模式简单应用案例分析
Oct 23 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 字符转义 注意事项
2009/05/27 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
python多进程实现进程间通信实例
2017/11/24 Python
点球小游戏python脚本
2018/05/22 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
某科技软件测试面试题
2013/05/19 面试题
大学生实习自我鉴定
2013/12/11 职场文书
自荐信需注意事项
2014/01/25 职场文书
六一节目主持词
2014/04/01 职场文书
买房委托公证书
2014/04/08 职场文书
施工安全协议书范本
2014/09/26 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL