プレーヤーが理想的なポイントに等しいポイント数に基づくゴルフライブリーダーボードを作成しようとしています。
理想は1ホール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);
}
この例では、ポイントを数えて順番に並べるだけです。そしてループで、理想的なポイントが何であるかを理解します。これにより、最も多くのホールをプレイしたプレーヤーがリードする可能性が最も高いため、リーダーボードが不正確になります...
これが理にかなっており、助けを期待していることを願っています... :-)