PHP 数据库树的遍历方法_php技巧

代码如下:

复制代码 代码如下:

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

时间: 2024-10-07 06:04:36

PHP 数据库树的遍历方法_php技巧的相关文章

PHP使用PDO操作数据库的乱码问题解决方法_php技巧

本文实例讲述了PHP使用PDO操作数据库的乱码问题解决方法.分享给大家供大家参考,具体如下: 当使用 PDO 连接操作数据库的时候,有时会出现:保存在数据库中的汉字为乱码.以文件为 UTF-8 格式,其解决方法如下: (1)实例化的对象直接执行 query() 方法或者 exec() 方法: <?php class DB { static public function getDB() { try { $_opts_values = array(PDO::ATTR_PERSISTENT=>tr

php+mysqli实现批量替换数据库表前缀的方法_php技巧

本文实例讲述了php+mysqli实现批量替换数据库表前缀的方法.分享给大家供大家参考.具体分析如下: 在php中有时我们要替换数据库中表前缀但是又不苦于一个个表去修改前缀,这里我自己写了一个mysqli批量替换数据库表前缀的php程序,感兴趣的朋友可以参考一下,代码如下: <?php header ( 'http-equiv="Content-Type" content="text/html; charset=utf-8"' ); $DB_host = &q

php将图片保存入mysql数据库失败的解决方法_php技巧

本文实例分析了php将图片保存入mysql数据库失败的解决方法.分享给大家供大家参考.具体分析如下: 图片保存数据库并不是一个明智的做法,我们多半是把图片保存到服务器,然后把图片地址保存到数据库,这样我们每次只要读出图片地址就可以显示了,但下面我还是来介绍一个图片保存到mysql数据库的问题解决办法,代码如下: 复制代码 代码如下: require 'class/db.php'; $fileName = "a1.jpg"; $fp = fopen($fileName, "r&

PHP实现二叉树的深度优先与广度优先遍历方法_php技巧

本文实例讲述了PHP实现二叉树的深度优先与广度优先遍历方法.分享给大家供大家参考.具体如下: #二叉树的广度优先遍历 #使用一个队列实现 class Node { public $data = null; public $left = null; public $right = null; } #@param $btree 二叉树根节点 function breadth_first_traverse($btree) { $traverse_data = array(); $queue = arr

php使用mysqli向数据库添加数据的方法_php技巧

本文实例讲述了php使用mysqli向数据库添加数据的方法.分享给大家供大家参考.具体实现方法如下: $mydb = new mysqli('localhost', 'username', 'password', 'databasename'); $sql = "INSERT INTO users (fname, lname, comments) VALUES ('$_POST[fname]', '$_POST[lname]', '$_POST[comments]')"; if ($m

php通过分类列表产生分类树数组的方法_php技巧

本文实例讲述了php通过分类列表产生分类树数组的方法.分享给大家供大家参考.具体分析如下: 这里$list 为分类列表数组,键为分类 ID,值为分类节点对象,pid 为父分类 ID php代码如下: $tree = array(); foreach ($list as $id => $row) { $pid = $row->pid; if ($pid == 0) { $tree[] = &$list[$id]; } else if (isset($list[$pid])) { $par

php连接Access数据库错误及解决方法_php技巧

php+access连接数据库常用的方式一般有两种. 推荐的代码 需要注意php获取路径用的是realpath 复制代码 代码如下: <?php $connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("data.mdb"); $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC); $i

php 更新数据库中断的解决方法_php技巧

即可解决: set_time_limit(900); 这个函数指定了当前所在php脚本的最大执行时间, 虽然设定值是900秒,实际上 最大执行时间=php.ini里的max_execution_time数值 - 当前脚本已经执行的时间 + 设定值 假如php.ini里的max_execution_time=30,当前脚本已经执行10秒,则: 最大执行时间=30-10+900=920秒. 经过如此修改后,PHP脚本成功更新200000条记录. 以上是在LAPP环境中通过的. 另外,据说这个方法在w

Yii操作数据库的3种方法_php技巧

一.执行原生太SQL的PDO方式. 复制代码 代码如下: $sql = "";//原生态sql语句 xx::model()->dbConnection->createCommand($sql)->execute(); 二.Active Record方式 (1)New 方式 复制代码 代码如下: $post=new Post; $post->title='sample post'; $post->content='post body content'; $p