Php 具有唯一名称的排行榜
我目前正在建立一个网站,人们可以访问并输入他们跑步、游泳、徒步或滑雪的距离。这是我的第一个网站,2-3个月前我对编码一无所知,所以请记住这一点 我已经创建了一个存储这些数据的表,以及一个leadboard.php,用于将数据获取到排行榜 这就是它现在的样子: 在表中插入:Php 具有唯一名称的排行榜,php,mysql,mysqli,unique,leaderboard,Php,Mysql,Mysqli,Unique,Leaderboard,我目前正在建立一个网站,人们可以访问并输入他们跑步、游泳、徒步或滑雪的距离。这是我的第一个网站,2-3个月前我对编码一无所知,所以请记住这一点 我已经创建了一个存储这些数据的表,以及一个leadboard.php,用于将数据获取到排行榜 这就是它现在的样子: 在表中插入: if (!mysqli_query($con,"INSERT INTO total(username, type, distance) VALUES ('$username', '$type', '$distance')"))
if (!mysqli_query($con,"INSERT INTO total(username, type, distance) VALUES ('$username', '$type', '$distance')"))
并将数据输入排行榜:
$result = mysqli_query($con, "SELECT username, distance FROM total ORDER BY distance DESC");
$rank= 1;
if (mysqli_num_rows($result)) {
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>{$rank}</td>
<td>{$row['username']}</td>
<td>{$row['distance']}</td></tr>";
$rank++;
}
}
?>
$result=mysqli_query($con,“选择用户名,按距离描述与总订单的距离”);
$rank=1;
if(mysqli_num_行($result)){
while($row=mysqli\u fetch\u assoc($result)){
回显“{$rank}”
{$row['username']}
{$row['distance']}”;
$rank++;
}
}
?>
问题是,当有人输入用户名/类型/距离时,会创建新行。所以一个人可以有不同的等级。我希望排行榜汇总每个用户不同类型活动的所有距离
正确的编码是什么?如果可能的话,我只想修改leadboard.php,而不想修改表,因为我正在将该数据用于网站的其他部分。试试这个
SELECT username, sum(distance) as total_distance FROM total group by username ORDER BY total_distance desc;
而不是
SELECT username, distance FROM total ORDER BY distance DESC;
并让我知道它是否有效。以澄清其他人是否有类似问题,或对此感兴趣。。。。我必须再改变一些,这样距离的总和就会显示出来,并且它是按总和排序的,而不仅仅是最大的个体距离
$result = mysqli_query($con, "SELECT username, sum(distance), distance as total_distance FROM total group by username ORDER BY sum(distance) desc;");
$rank= 1;
if (mysqli_num_rows($result)) {
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>{$rank}</td>
<td>{$row['username']}</td>
<td>{$row['sum(distance)']}</td></tr>";
$rank++;
}
}
?>
$result=mysqli_query($con,“选择用户名、总和(距离)、距离作为总距离,按用户名排序,按总和(距离)描述;”);
$rank=1;
if(mysqli_num_行($result)){
while($row=mysqli\u fetch\u assoc($result)){
回显“{$rank}”
{$row['username']}
{$row['sum(distance)']}”;
$rank++;
}
}
?>
这是我完成的代码^感谢您的回复!它现在以正确的顺序显示分组的用户名,但距离并没有显示我添加的距离“按用户名顺序按总距离描述选择用户名、距离、和(距离)作为总距离”,现在它可以工作了。谢谢你的帮助@欢迎你。如果有帮助,你可以投票并选择这个答案。