我有一个简单的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数据库中是否明智?
我真的想在这方面了解更多并想完成这项工作,所以请帮我解决这个问题。
答案 0 :(得分: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>";
}