php递归函数返回值问题
//递归函数,循环显示子类别functionget_str($id){global$strc;$sql="select*fromcp_typewherec_fid='$i...
//递归函数,循环显示子类别
function get_str($id)
{
global $strc;
$sql = "select * from cp_type where c_fid='$id'";
$sres = mysql_query($sql);//查询fid的子类的分类
$num=mysql_num_rows($sres);
if($num>0)
{//如果有子类
$strc.="<ul>";
while ($srow = mysql_fetch_array($sres))
{ //循环记录集
$strc .=" <li><table width='100%' border='0' align='right' cellpadding='2' cellspacing='0'>
<tr>
<td width='74' align='right'>|_".$srow["id"]."</td>
<td align='left'>---------".$srow["c_name"]."</td>
<td width='60' align='center'>".$srow["c_fid"]."</td>
<td width='135' align='center'>".$srow["timer"]."</td>
<td width='175' align='center'><a href=cp_type.php?add2=".$srow["id"].">添加子类别</a> / <a href=cp_type.php?edit=".$srow["id"].">修改</a> / <a onclick='return confirm(确定删除子类别?)' href=cp_type.php?del=".$srow["id"].">删除</a></td>
</tr>
</table></li><br>"; //构建字符串
get_str($srow["id"],$leve+1); //调用get_str(),将记录集中的id参数传入函数中,继续查询下级
}
$strc.="</ul>";
return $strc;
}
}
输出的值总是重复,有没有高手能帮忙看下如何改吗 展开
function get_str($id)
{
global $strc;
$sql = "select * from cp_type where c_fid='$id'";
$sres = mysql_query($sql);//查询fid的子类的分类
$num=mysql_num_rows($sres);
if($num>0)
{//如果有子类
$strc.="<ul>";
while ($srow = mysql_fetch_array($sres))
{ //循环记录集
$strc .=" <li><table width='100%' border='0' align='right' cellpadding='2' cellspacing='0'>
<tr>
<td width='74' align='right'>|_".$srow["id"]."</td>
<td align='left'>---------".$srow["c_name"]."</td>
<td width='60' align='center'>".$srow["c_fid"]."</td>
<td width='135' align='center'>".$srow["timer"]."</td>
<td width='175' align='center'><a href=cp_type.php?add2=".$srow["id"].">添加子类别</a> / <a href=cp_type.php?edit=".$srow["id"].">修改</a> / <a onclick='return confirm(确定删除子类别?)' href=cp_type.php?del=".$srow["id"].">删除</a></td>
</tr>
</table></li><br>"; //构建字符串
get_str($srow["id"],$leve+1); //调用get_str(),将记录集中的id参数传入函数中,继续查询下级
}
$strc.="</ul>";
return $strc;
}
}
输出的值总是重复,有没有高手能帮忙看下如何改吗 展开
展开全部
你没发现吗 你的get_str($id)值定义了一个参数,而你递归的时候是传递2个参数的
第二个,递归的时候你没有给返回值重新赋值累加,look ~~~like this
$str .= get_str($srow["id"],$leve+1);
第二个,递归的时候你没有给返回值重新赋值累加,look ~~~like this
$str .= get_str($srow["id"],$leve+1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询