gpt4 book ai didi

php - 将数学放入 sql 查询中

转载 作者:行者123 更新时间:2023-11-29 08:26:36 25 4
gpt4 key购买 nike

我正在尝试创建一个高尔夫实时排行榜,该排行榜基于玩家拥有多少分数等于理想分数。

理想的得分是每个洞 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);

}

在这个例子中,我只是计算点数并按它排序。然后在循环中我找出理想的点是什么。这使得排行榜不正确,因为打了最多洞的球员最有可能处于领先地位......

希望这是有道理的,并希望得到帮助......:-)

最佳答案

SELECT fk_playerid, fname, lname, points, holes, points-2*holes diff
FROM (
SELECT SUM(ls.points) points
COUNT(ls.dk_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) x
ORDER BY diff desc

关于php - 将数学放入 sql 查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17771267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com