帮忙给优化一下PHP代码,执行很慢 30

$userid=gv($info_user,"userid");//调出一级用户$first_user=sql("s",'verify_num','*','wheresu... $userid=gv($info_user,"userid");

//调出一级用户
$first_user=sql("s",'verify_num','*','where supid='.$userid_val);
foreach($first_user as $firuser_val){

//统计一级用户数量
$fir_u_num=sql("frow","user","id","where userid=".$firuser_val['userid'];
$u1+=$fir_u_num;
//调出二级用户

$sec_user=sql("s","verify_num","userid,supid","where supid=".$firuser_val['userid']);

//统计二级用户数量
foreach($sec_user as $secuser_val){
$sec_u_num=sql("frow","user","id","where userid=".$secuser_val['userid'];
$u2+=$sec_u_num;

//调出三级用户
$thi_user=sql("s","verify_num","userid,supid","where supid=".$secuser_val['userid']);

//统计三级用户数量
foreach($thi_user as $thiuser_val){
$thi_u_num=sql("frow","user","id","where userid=".$thiuser_val['userid']);
$u3+=$thi_u_num;
}
}
}
这段代码,怎么才能运行的快点呢
展开
 我来答
百度网友a013db4
2015-10-17
知道答主
回答量:21
采纳率:0%
帮助的人:14.7万
展开全部
写的话 很麻烦 给你个思路

你这个 主要是因为你是3次循环 并且每次都是在循环里面查询

那你可以 先把所有的数据一次性都调出来,然后在用循环去拼凑数据 ,这样不会查询数据库

另外 循环的时候可以把已经拼凑好的数据 直接UNSET 减少下一次子循环的循环次数、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shengxia450259
2015-10-17 · 超过14用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:23.9万
展开全部
你尽量不要将查询写在循环里面,像下面这样会好很多:

$userid=gv($info_user,"userid");

//调出一级用户
$first_user=sql("s",'verify_num','*','where supid='.$userid_val);

$firuser_arr = array();

foreach($first_user as $firuser_val){
$firuser_arr[] = $firuser_val['userid'];
}

//统计一级用户数量
$fir_u_num = sql("frow","user","id","where userid in (".implode(',',$firuser_arr).")");

$u1 = count($fir_u_num);
//调出二级用户

$sec_user=sql("s","verify_num","userid,supid","where supid in (".implode(',',$firuser_arr).")");
。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式