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 相关文章推荐
如何在WIN2K下安装PHP4.04
Oct 09 PHP
php 启动时报错的简单解决方法
Jan 27 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
php通过记录IP来防止表单重复提交方法分析
Dec 16 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
学习php设计模式 php实现工厂模式(factory)
Dec 07 PHP
开启PHP的伪静态模式
Dec 31 PHP
php源码之将图片转化为data/base64数据流实例详解
Nov 27 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
PHP面向对象多态性实现方法简单示例
Sep 27 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
Apr 20 PHP
PHP反射学习入门示例
Jun 14 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修正代码
2011/05/09 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
Vue from-validate 表单验证的示例代码
2017/09/26 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
vue中element 上传功能的实现思路
2018/07/06 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
2019/01/14 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
详解vue路由
2020/08/05 Javascript
Python with用法实例
2015/04/14 Python
简单谈谈Python中的闭包
2016/11/30 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
20行python代码实现人脸识别
2019/05/05 Python
django将数组传递给前台模板的方法
2019/08/06 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
社区志愿者培训方案
2014/06/10 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
员工旷工检讨书
2015/08/15 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python