我知道我这么写 是很慢的
我知道思路 但是做不出来
应该一次性将所有数据取出来
然后排序 求赐教
function getBookmarkcategory($pid = 0, &$result = array(), $spac = 0)
{
if(MODULE_NAME=="Home"){
$ispublic=0;
$uid=session('uid');
$ispublic+="And bookmarkcategory_staffid = $uid";
}else if(MODULE_NAME=="Admin"){
$ispublic=1;
}
$Model = new Model();
$spac = $spac + 8;
$res=$Model->query( "SELECT * FROM x_bookmarkcategory WHERE bookmarkcategory_pid=$pid And bookmarkcategory_ispublic = $ispublic order by bookmarkcategory_sort");
foreach($res as $key=>$value){
$result[]=$res[$key];
getBookmarkcategory($value['bookmarkcategory_id'],$result,$spac);
}
return $result;
}
$list = getBookmarkcategory();
return $list;
function getBookmarkcategory($pid = 0, &$result = array(), $spac = 0)
{
if(MODULE_NAME=="Home"){
$ispublic=0;
$uid=session('uid');
$ispublic+="And bookmarkcategory_staffid = $uid";
}else if(MODULE_NAME=="Admin"){
$ispublic=1;
}
$Model = new Model();//竟然是递归 每次寻环 都要实例模型 慢的原因 之一 放到函数外面
$spac = $spac + 8;
$res=$Model->query( "SELECT * FROM x_bookmarkcategory WHERE bookmarkcategory_pid=$pid And bookmarkcategory_ispublic = $ispublic order by bookmarkcategory_sort");
//SELECT * 这种写法 性能低 bookmarkcategory_pid=$pid--bookmarkcategory_pid 是否索引
foreach($res as $key=>$value){
$result[]=$res[$key];
getBookmarkcategory($value['bookmarkcategory_id'],$result,$spac);
}
return $result;
}
//速度最好的是 数据一次在外部取出 再来递归 很快 mysql 操作很慢的