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实现的功能是显示8条基色色带
Oct 09 PHP
php array_search() 函数使用
Apr 13 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
简单的php文件上传(实例)
Oct 27 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
php中如何执行linux命令详解
Nov 06 PHP
详解PHP队列的实现
Mar 14 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
Oct 17 PHP
laravel添加前台跳转成功页面示例
Oct 22 PHP
PHP实用小技巧之调用录像的方法
Dec 05 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 文件系统详解
2012/09/13 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
零基础php编程好学吗
2019/10/11 PHP
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
利用yarn实现一个webpack+react种子
2016/10/25 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
Python多线程实例教程
2014/09/06 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
python通过zabbix api获取主机
2018/09/17 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
大学校庆邀请函
2014/01/11 职场文书
中学生思想品德评语
2014/12/31 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
活动主持人开场白
2015/05/28 职场文书
经销商会议开幕词
2016/03/04 职场文书
导游词之临安白水涧
2019/11/05 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python