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 相关文章推荐
国内php原创论坛
Oct 09 PHP
别人整理的服务器变量:$_SERVER
Oct 20 PHP
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
Jun 02 PHP
php实现事件监听与触发的方法
Nov 21 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
php实现博客,论坛图片防盗链的方法
Oct 15 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
php 调用百度sms来发送短信的实现示例
Nov 02 PHP
PHP getNamespaces()函数讲解
Feb 03 PHP
Laravel框架下载,安装及路由操作图文详解
Dec 04 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 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中heredoc的使用方法
2013/06/17 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
javascript 全角转换实现代码
2009/07/17 Javascript
json 实例详细说明教程
2009/10/31 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
python opencv 图像尺寸变换方法
2018/04/02 Python
python实现决策树分类(2)
2018/08/30 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
abstract class和interface有什么区别?
2012/01/03 面试题
有abstract方法的类一定要用abstract修饰吗
2016/03/14 面试题
大学生的应聘自我评价
2013/12/13 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
委托书样本
2014/04/02 职场文书
考核评语大全
2014/04/29 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
秋菊打官司观后感
2015/06/03 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python