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 相关文章推荐
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
高亮度显示php源代码
Oct 09 PHP
深入PHP数据缓存的使用说明
May 10 PHP
PHP计算一年多少个星期和每周的开始和结束日期
Jul 01 PHP
PHP实现递归复制整个文件夹的类实例
Aug 03 PHP
php实现的Curl封装类Curl.class.php用法实例分析
Sep 25 PHP
PHP实现链式操作的原理详解
Sep 16 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 PHP
php处理静态页面:页面设置缓存时间实例
Jun 22 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
laravel5.6实现数值转换
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 smarty 二级分类代码和模版循环例子
2011/06/01 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
PHP Directory 函数的详解
2013/03/07 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
初识PHP
2014/09/28 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
javascript 页面只自动刷新一次
2009/07/10 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
在Django中创建动态视图的教程
2015/07/15 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
金融专业个人的自我评价
2013/10/18 职场文书
机械设计及其自动化专业推荐信
2013/10/31 职场文书
办理护照介绍信
2014/01/16 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
环保建议书作文
2014/03/12 职场文书
运动会拉拉队口号
2014/06/09 职场文书
技术支持岗位职责
2015/02/13 职场文书
python爬虫框架feapde的使用简介
2021/04/20 Python
python 字典和列表嵌套用法详解
2021/06/29 Python
javascript函数式编程基础
2021/09/15 Javascript