PHP 数据库树的遍历方法


Posted in PHP onFebruary 06, 2009

代码如下:

<?php 
session_start(); 
define ('P_S', PATH_SEPARATOR); 
define ('ROOT', "./"); 
set_include_path(ROOT .P_S .'Zend' .P_S .ROOT.get_include_path()); 
//加载ZEND 框架 
require_once ROOT.'Zend/Loader.php'; 
require_once 'usercheck.php';//加载访问权限 
Zend_Loader::loadFile('function.class.php', $dirs='class/', $once=false);//加载函数 
Zend_Loader::loadClass('Zend_Db');//加载数据库类 
Zend_Loader::loadClass('Zend_Config_Ini');//加载配置类 
$config = new Zend_Config_Ini('config.php', 'general');//创建配置对象 
$db = Zend_Db::factory($config->db->adapter,$config->db->config->toArray());//创建数据库对象 
$select=$db->select(); 
$select->from('ResClass',array('lsh','name')); 
$select->where('steps = 1'); 
$rs=$db->fetchAll($select); 
foreach ($rs as $res){ 
echo '    '.$res['lsh'].$res['name']."<br>"; 
Visit($res['lsh'],1); 
} 
function Visit($nodeid,$stept){ 
global $db; 
$recordset = "SELECT lsh,name FROM ResClass WHERE parent=".$nodeid; //搜索nodeid的所有下层节点 
$rs=$db->fetchAll($recordset); 
foreach($rs as $rss){ 
if(!$rss) 
return; //已经是叶子节点,直接返回 
else{ 
for ($i=0;$i<4*$stept;$i++){ 
echo " "; 
} 
echo '    '.$rss['lsh'].$rss['name']."<br>"; 
Visit($rss['lsh'],$stept+1); 
} 
} 
} 
?>
PHP 相关文章推荐
java EJB 加密与解密原理的一个例子
Jan 11 PHP
php中的一些数组排序方法分享
Jul 20 PHP
PHP常用开发函数解析之数组篇[未完结]
Jul 30 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
浅析echo(),print(),print_r(),return之间的区别
Nov 27 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
php实现通用的从数据库表读取数据到数组的函数实例
Mar 21 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
PHP中PCRE正则解析代码详解
Apr 26 PHP
Laravel 实现数据软删除功能
Aug 21 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 PHP
php将xml转化对象的实例详解
Nov 17 PHP
一周让你学会PHP 不错的学习资料
Feb 06 #PHP
简化php模板页面中分页代码的解析
Feb 06 #PHP
精通php的十大要点(上)
Feb 04 #PHP
用mysql内存表来代替php session的类
Feb 01 #PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 #PHP
防止MySQL注入或HTML表单滥用的PHP程序
Jan 21 #PHP
php 动态多文件上传
Jan 18 #PHP
You might like
PHP新手上路(三)
2006/10/09 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
jQuery live
2009/05/15 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
毕业生求职自荐信怎么写
2014/01/08 职场文书
小学生新学期寄语
2014/01/19 职场文书
数学系个人求职信范文
2014/01/30 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
民主生活会意见
2015/06/05 职场文书
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript