我有一个足球奇幻联赛的 php 脚本,有 20 支球队和 400 多名球员分配给球队,我有 500 个用户。
每周应该为每个球员分配一个积分,这样最终每个用户都会从他的阵型中获得一个总分,这将产生赛季的排名。
第一周点数正常添加,但第二周点数的 addpont 部分变得如此缓慢,第三周点数出现套接字超时错误。
这是我在向用户添加积分时使用的代码:
// Adding Point To the user player list
$sql_user="select * from ".$prev."user LIMIT 0, 100 ";
$re_user=mysql_query($sql_user);
while($d_user=mysql_fetch_array($re_user))
{
$userID=$d_user['id'];
$sql_addpointgroup="select * from ".$prev."addpoint group by weekno order by weekno";
$re_addpointgroup=mysql_query($sql_addpointgroup);
while($d_addpointgroup=mysql_fetch_array($re_addpointgroup))
{
$points=0;
$sql_addpoint="select * from ".$prev."addpoint where weekno='".$d_addpointgroup['weekno']."'";
$re_addpoint=mysql_query($sql_addpoint);
while($d_addpoint=mysql_fetch_array($re_addpoint))
{
$points=$d_addpoint['points'];
$sql_weekstatistic="select * from ".$prev."weekstatistic where weekno='".$d_addpointgroup['weekno']."' and userID='$userID' and playerID='".$d_addpoint['playerID']."'";
$re_weekstatistic=mysql_query($sql_weekstatistic);
if(mysql_num_rows($re_weekstatistic)>0)
{
$sql_update="update ".$prev."weekstatistic set points='$points' where weekno='".$d_addpointgroup['weekno']."' and userID='$userID' and playerID='".$d_addpoint['playerID']."'";
mysql_query($sql_update);
}
}
}
}
我已将每次提交的用户数量限制为 100 个用户,即便如此代码仍然很慢。
缓慢仅与此代码有关,其他网站部分正常工作。
有没有办法以其他更快的方式编写代码,或者我还能做些什么?
提前谢谢了,