Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有唯一名称的排行榜_Php_Mysql_Mysqli_Unique_Leaderboard - Fatal编程技术网

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')"))

我目前正在建立一个网站,人们可以访问并输入他们跑步、游泳、徒步或滑雪的距离。这是我的第一个网站,2-3个月前我对编码一无所知,所以请记住这一点

我已经创建了一个存储这些数据的表,以及一个leadboard.php,用于将数据获取到排行榜

这就是它现在的样子:

在表中插入:

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++;
}
}
?>

这是我完成的代码^

感谢您的回复!它现在以正确的顺序显示分组的用户名,但距离并没有显示我添加的距离“按用户名顺序按总距离描述选择用户名、距离、和(距离)作为总距离”,现在它可以工作了。谢谢你的帮助@欢迎你。如果有帮助,你可以投票并选择这个答案。