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 相关文章推荐
模拟OICQ的实现思路和核心程序(一)
Oct 09 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
Jan 17 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
php分页函数示例代码分享
Feb 24 PHP
PHP采用XML-RPC构造Web Service实例教程
Jul 16 PHP
php使用curl打开https网站的方法
Jun 17 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
Apr 27 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 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 检查扩展库或函数是否可用的代码
2010/04/06 PHP
MySQL连接数超过限制的解决方法
2011/07/17 PHP
PHP实现的简单网络硬盘
2015/07/29 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
用jQuery模拟select下拉框的简单示例代码
2014/01/26 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
RequireJs的使用详解
2017/02/19 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
大学生学习生活的自我评价
2013/11/01 职场文书
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
司机辞职报告范文
2014/01/20 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
公务员诚信承诺书
2014/05/26 职场文书
师德师风整改措施
2014/10/24 职场文书
结婚典礼致辞
2015/07/28 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server