> 백엔드 개발 > PHP 튜토리얼 > php递归,该如何处理

php递归,该如何处理

WBOY
풀어 주다: 2016-06-13 11:15:03
원래의
934명이 탐색했습니다.

php递归
有一个数据表,结构如下:
id      classid       zengclassid     createdate

需要递归查出classid=$id的zengclassid,还得判断zengclassid如果也有赠送的课程时,需要把这条记录也查出来,
例如:
1        470           445             2010-01-01  11:11:11
2        470           448             2010-01-01  11:11:11
3        448           457             2010-01-01  11:11:11
4        445           490             2010-01-01  11:11:11

如果查找id为470的结果,那么需要查出:445,448,457,490;

我的代码递归得有问题,请大虾们赐教一下
function getVideo_zs($classid,$arr){
global $dsql;
$sql = "SELECT zengclassid FROM course WHERE classid=".$classid;
$dsql->Execute('mme',$sql);
while($rs=$dsql->getArray('mme')){
$arr[] = $rs['zengclassid'];
if(!empty($rs['zengclassid'])){
$arr = getVideo_zs($rs['zengclassid'],$arr);
}
}
        
           return $arr; 
}
$zs_list = array();
$zs_zrr = getVideo_zs(470,$zs_list);   


------解决方案--------------------
$arr[] = $rs['zengclassid'];//累积结果
if(!empty($rs['zengclassid'])){
$arr = getVideo_zs($rs['zengclassid'],$arr);//怎么递归一下就覆盖呢?

另外 $dsql->Execute('mme',$sql); 后,资源在 $dsql 内
请确认结果集不会被覆盖
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿