太阳。。。出现了Fatal error: Maximum execution time of 30 seconds ex

2016-07-07 15:17 来源:www.chinab4c.com 作者:ecshop专家



出现了Fatal error: Maximum execution time of 30 seconds exceeded 这样的情况,我把php.ini中的max_execution_time的值改为0还是不行,下面是我的sql语句;

$g=$GLOBALS['ecs']->table('goods');
$r=$GLOBALS['ecs']->table('region');
$sql="SELECT $g.goods_id FROM".$g;
$sql2="SELECT $r.region_id FROM".$r." where parent_id='1' and region_id!=33 and region_id!=34 and region_id!=35";
$res1=$GLOBALS['db']->getAll($sql);
$res2=$GLOBALS['db']->getAll($sql2);
foreach($res1 as $val)
{
foreach($res2 as $val2)
{
if($val2[region_id]=='11')
{
$sql3="INSERT".$GLOBALS['ecs']->table('goods_source')." (region_id,goods_id,goods_number)values(". $val2[region_id].",".$val[goods_id].","."100".")";
}
else
{
$sql3="INSERT INTO".$GLOBALS['ecs']->table('goods_source')." (region_id,goods_id,goods_number)values(".$val2[region_id].",".$val[goods_id].","."0".")";
}
$GLOBALS['db']->query($sql3);
}
}

回答:
你这个SQL时间复杂度太高了。你可以简化啊。

没见过这问题。

要简化。。。。

试着修改下sql,我都看着迷茫,就看懂个IF判断。。foreach输出




怎么简化,我对mysql不是很好

哥,你知道region表有几条记录吗?不带你这样查询的啊。查询也就算了,再来一个foreach。foreach也就算了,还要来个insert。你知道这个是什么效率吗?