我正在使用递归函数从数据库中获取值,但在我的代码中,我只得到第一个记录作为返回。一切都完成后我应该把返回功能放在哪里?
function sidebar_sub_sub($id)
{
$sql="select subcatagory_id,subcatagory_name,haschild,parent from subcatagory where parent=".$id."";
$query=mysql_query($sql);
$resultset=array();
if(mysql_num_rows($query))
{
while($result=mysql_fetch_assoc($query))
{
array_push($resultset,$result);
if($result['haschild'])
{
$sb=sidebar_sub_sub($result['subcatagory_id']);
}
}
}
return $resultset;
}
答案 0 :(得分:0)
您将sidebar_sub_sub()
的结果存储在$ sb中。但是你对这个变量什么都不做。
您可以改为array_push($resultset, sidebar_sub_sub())
。这样就可以返回整个递归堆栈。
答案 1 :(得分:0)
尝试下面用于我的类别表的脚本,其中只有三个字段id,name和parent_id。它可能适合你。
$resultset=array();
function sidebar_sub_sub($id)
{
global $resultset;
$sql="select id,name,parent_id from categories where parent_id=".$id."";
$query=mysql_query($sql);
if(mysql_num_rows($query))
{
while($result=mysql_fetch_assoc($query))
{
array_push($resultset,$result);
if($result['parent_id']>0){
sidebar_sub_sub($result['id']);
}
}
}
return $resultset;
}
$result = sidebar_sub_sub(1);