PHP 数据库树的遍历方法
2018-09-22 00:58
  代码如下: 
复制代码 代码如下:
<?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); 
} 
} 
} 
?>