求助一个循环处理大量数据。

#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