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);
}
}
}
?>