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;
}
}
输出的值总是重复,有没有高手能帮忙看下如何改吗
展开
 我来答
百度网友32766f6
2013-12-11
知道答主
回答量:27
采纳率:100%
帮助的人:15.3万
展开全部

函数与自己回调的函数都不一样,怎么能得到正确的结果?还有把数据表的结构和数据给出来才能给你分析嘛。


追问
不好意思,那里忘了改过来,但是即使改完后,输出的结果也不对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
justbat
2013-12-11 · TA获得超过124个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:94.1万
展开全部
你没发现吗 你的get_str($id)值定义了一个参数,而你递归的时候是传递2个参数的

第二个,递归的时候你没有给返回值重新赋值累加,look ~~~like this

$str .= get_str($srow["id"],$leve+1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunyi917
2013-12-11
知道答主
回答量:18
采纳率:0%
帮助的人:22.4万
展开全部
看了一遍!没看出什么问题。最好贴出输出效果,再看下!
更多追问追答
追问

输出的结果是这样的,有重复

追答
可不可以再看下数据表里相对应数据,因为现在我光这么看没法调试这段程序,有点小麻烦!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式