gpt4 book ai didi

php - 创建高尔夫锦标赛排行榜

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

我正在尝试为下个月将参加的高尔夫锦标赛创建一个排行榜,但我无法弄清楚如何使其发挥作用。

我有一个分数输入页面,正在转储到我的 SQL 数据库中,该页面工作正常(所有分数/姓名/总计都会进入),[ 1 ] 然后我按照我希望在排行榜上显示的方式填充分数,这也很好用。
我什至将它们GROUP BY(ing)在一起,这样就不会有重复[2]。

我遇到的问题是我无法使用GROUP BY 将总计列添加在一起。我曾多次尝试在查询中执行 SUM(total) 操作,但它总是删除总计[3]。 here is what it looks like (上面的每个数字都是图像)它没有显示刚刚填充的任何分数。

这是我当前的查询:

$servername = 'mysql.thisplace.com'; 
$username = 'name';
$password = 'pword';
$dbname = 'dbase';

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Connection failed " . $conn->connect_error);
}
$sql = "SELECT name, sum(total) FROM matchplay GROUP BY name ORDER BY -total DESC";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "Name " . $row["name"] . " Score " . $row["total"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>

我们所有人之间将进行 4 轮比赛,所以这是我的问题:

我如何将 16 个不同人的 4 轮加起来并显示出领先者?最好的查询是什么?对于 SUM() 问题,我是否在查询中做了错误的事情来实现这种情况?

任何帮助都会很棒!

最佳答案

问题似乎与您使用(而不是不使用)列的别名有关。您对列名称中的 total 和作为各个分数总和的 total 感到困惑。因此,为总和列创建一个新的别名作为Score并按别名排序。这样,SQL 就不会混淆总和和列名。

将您的查询修改为

SELECT name, sum(total) as Score FROM matchplay GROUP BY name ORDER BY Score desc;

上面的查询似乎可以解决问题并返回所需的结果..!!

除此之外,将 while 循环修改为

while($row = mysqli_fetch_assoc($result)) {
echo "Name " . $row["name"] . " Score " . $row["Score"]. "<br>";
}

工作 SQLFiddle here

关于php - 创建高尔夫锦标赛排行榜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31911431/

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