求助一个循环处理大量数据。
发布于:2022-01-17 09:50:54
#1 lanyanhuo
有一组8000条左右的数据,需要一次性读出来并在页面显示(要求不翻页显示)。其中这组数据需要经过处理。我写了个方法如下:
public function getSubModelsForParent($matchid,$brandname,$litmit){
$condition = array('parentid'=>$matchid);
$arr = $this->findAll($condition,'matchname asc','matchid,matchname',$litmit);
foreach( $arr as $item ){
$matchid = $item['matchid'];
$matchname = $item['matchname'];
$urlname = strtolower($brandname)."-".str_replace(' ','-',strtolower($matchname));
$values = array(
'matchid' => $matchid,
'matchname' => $matchname,
'urlname' => $urlname,
2011-10-07 22:38:06
#2 lanyanhuo
上面帖子没发完全
public function getSubModelsForParent($matchid,$brandname,$litmit){
$condition = array('parentid'=>$matchid);
$arr = $this->findAll($condition,'matchname asc','matchid,matchname',$litmit);
foreach( $arr as $item ){
$matchid = $item['matchid'];
$matchname = $item['matchname'];
$urlname = strtolower($brandname)."-".str_replace(' ','-',strtolower($matchname));
$values = array(
'matchid' => $matchid,
'matchname' => $matchname,
'urlname' => $urlname,
);
$results[] = $values;
}
return $results;
}
当$litmit<=6000 页面数据可以正常读出并显示,超过6000则处理超时页面显示为空白,我大概有8000条数据,求助JAKE,是不是我上面的方法处理效率太低,请问有什么好的方法能够正常显示出这8000条数据,谢谢。
2011-10-07 22:41:54
#3 jake
超时的话,可以用set_time_limit(0);或者配置php.ini来解决。
当然,大数据量的处理,一般是用分批执行的方法,如果只能一次执行,那么上面的方法可以说是唯一的方法了。
2011-10-08 08:46:51