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 相关文章推荐
使用无限生命期Session的方法
Oct 09 PHP
php str_pad 函数使用详解
Jan 13 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
php调用MySQL存储过程的方法集合(推荐)
Jul 03 PHP
php使用PDO操作MySQL数据库实例
Dec 30 PHP
PHP多文件上传类实例
Mar 07 PHP
PHP记录和读取JSON格式日志文件
Jul 07 PHP
php获取'/'传参的值简单方法
Jul 13 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
php 解析非标准json、非规范json
Apr 01 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实现的MySQL通用查询程序
2007/03/11 PHP
使用PHP获取网络文件的实现代码
2010/01/01 PHP
php绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
jQuery实现带进度条的轮播图
2020/09/13 jQuery
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
简单介绍Python中的round()方法
2015/05/15 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
解决python 找不到module的问题
2020/02/12 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
美国鲜花递送:UrbanStems
2021/01/04 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
电视购物广告词
2014/03/19 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
三方协议书
2015/01/27 职场文书
给原生html中添加水印遮罩层的实现示例
2021/04/02 Javascript