我想創建一個高爾夫的現場排行榜,它基於一個玩家有多少點等於理想點。把數學放到sql查詢
理想點是每個洞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);
}
在這個例子中我只是指望點和秩序。然後在循環中找出理想的要點。這使得排行榜不正確,因爲誰發揮最孔最有可能將在帶領玩家...
希望這是有道理的,並希望幫助... :-)
哦,是的......工作就像一個魅力:-) – Mansa