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
php URL验证正则表达式
Jul 19 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
PHP输出时间差函数代码
Jan 28 PHP
完美解决PHP中的Cannot modify header information 问题
Aug 12 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
Yii实现的多级联动下拉菜单
Jul 13 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
PHP常量define和const的区别详解
May 18 PHP
Yii框架自定义数据库操作组件示例
Nov 11 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
美国精品家居用品网站:US-Mattress
2016/08/24 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
如何高效率的查找一个月以内的数据
2012/04/15 面试题
医学检验专业大学生求职信
2013/11/18 职场文书
行政助理岗位职责范文
2013/12/03 职场文书
金融保险专业求职信
2014/09/03 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书