php无限分类,请高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/09 06:51:18
表结构category(cid,descr,parent_id),我想实现读取所有分类,但是不想用global $cat,我要把所有的值放在一个数组里,怎么实现
谢谢了
function get_category($pid,&$db){
global $cat;
$sql="select cat_id,cat_name,grade,isleaf,parent_id from category where parent_id="."$pid";
$query=$db->query($sql);
$arr = $db->get_result($query);
foreach((array)$arr as $value){
$cat[]=$value;
$pid=$value['cat_id'];
if($value['isleaf']){
get_category($pid,$db);
}
}
}

建个类 不更好吗?
比如
<?php
class cate{
private $cid;
private $parent_id;
private $descr;
private $sum;

public function __construct(){
$this->init();
}

function init(){
global $db;
$sql = $db->query('SELECT * FROM category');
$i = 0;
while($temp = $db->fetch_array($sql)){
$this->cid[$i] = $temp['cid'];
$this->parent_id[$i] = $temp['parent_id'];
$this->descr[$i] = $temp['descr'];
$i++;
}
$this->sum = $i;
}

public function getCate($type,$value=0){
$j = 0;
$temp;
for($i = 0; $i < $this->sum; $i++){
if($this->{$type}[$i] == $value){
$temp['cid'][$j] = $this->cid[$i];
$temp['parent_id'][$j] = $this->parent_id[$i];
$temp['descr'][$j] = $this->descr[$i];
$j++;
}