我正在尝试创建一个高尔夫实时排行榜,该排行榜基于玩家拥有多少点等于理想点数。
理想的分数是每个洞 2 分。因此,如果一名球员打了 3 个洞,他应该得到 6 分。如果玩家有 6 分,则玩家积分为 0。如果玩家获得更多,他将获得 + 分和更少 - 分。
这里的问题是球员会在不同的洞上,有些人打了 2 个,有些人打了 3 个,也许有些人打了 7 个。所以不知何故,我需要计算总分,计算洞数并减去它们,我认为然后按减去。
这是我到目前为止得到的:
$result = mysqli_query($con,"SELECT SUM(ls.points) points
, COUNT(ls.fk_playerid) holes
, ls.fk_playerid
, u.fname
, u.lname
FROM ".$prefix."_livescore ls
INNER JOIN ".$prefix."_users u
ON ls.fk_playerid = u.userid
WHERE fk_gameid=$gameid GROUP BY fk_playerid ORDER BY points DESC");
while($row = mysqli_fetch_array($result)){
$idealpoints = $row['points'] - ($row['holes'] * 2);
$players[] = array('uid' => $row['fk_playerid'], 'name' => $row['fname'].' '.$row['lname'], 'hole' => $row['holes'], 'points' => $idealpoints);
}
在这个例子中,我只是计算点数并按它排序。然后在循环中我找出理想点是什么。这使得排行榜不正确,因为打出最多洞的球员最有可能处于领先地位......
希望这是有道理的,并希望得到帮助...... :-)