0

我有一个简单的 PHP 脚本,一旦运行,我就无法访问服务器上的任何其他页面。

脚本就这么简单:

for($league=11387; $league<=11407; $league++){
 for($i=1; $i<9; $i++){

    //gets the team object here from external resource
    $team = $HT->getYouthTeam($HT->getTeam($HT->getLeague($league)->getTeam($i)->getTeamId())->getYouthTeamId()); 

    if($team->getId() != 2286094){
        $youthTeams[] = $team;
    }

    set_time_limit(10);
 }
}

显然,我应该在这里获得数千个“团队”(除了一个 ID 为 2286094 的团队),但是一旦我运行了这个脚本,我就无法在服务器上打开任何其他页面,直到结束,并且需要很长时间才能脚本将结果提取到 $youthTeams 数组中。

我的意图是制作一个进度条,可以准确地告诉(以 % 为单位)脚本所在的位置,但我不能,因为这个脚本使服务器无法显示任何其他页面(你会得到任何其他页面“加载”但是由于此脚本在服务器上运行,因此它永远不会加载)。

另外,附加子问题:一旦获取所有这些数据,在一个查询中将它们全部插入 mysql 数据库是否明智?

我真的想了解更多这方面的信息,并希望完成这个,所以请帮我解决这个问题。

4

1 回答 1

0

也许您可以通过检查时间来确定您的哪个查找消耗的时间最多?

$t0=microtime(1);
$teamid=$HT->getLeague($league)->getTeam($i)->getTeamId();
echo "lookup teamid:  ".(($t1=microtime(1))-$t0)."<br>";
if (if($team->getId() != 2286094) {
  $youthteamid=$HT->getTeam($teamid)->getYouthTeamId();
  echo "lookup youthteamid:  ".(($t2=microtime(1))-$t1)."<br>";
  $youthteam = $HT->getYouthTeam($youthteamid);
  echo "lookup youthteam:  ".(($t3=microtime(1))-$t2)."<br>total time:  ".($t3-$t0)."<br>";
}
于 2013-08-01T15:07:21.907 回答