gpt4 book ai didi

php - 获取学生的排名

转载 作者:行者123 更新时间:2023-12-02 14:58:06 24 4
gpt4 key购买 nike

我试图通过使用总分来获得学生的排名,即分数高于其他学生的学生应该是第一,依此类推,我使用 while 循环来做到这一点,但是当两个或更多学生时具有相同的总分,他们获得不同的排名,我想要实现的是,当两个或更多学生具有相同的总分时,他们应该具有相同的排名,请帮忙,这是我的代码。

<?php require_once("include/connection.php"); ?>
<?php
$query = "SELECT * FROM `total` ORDER BY `total` DESC";
$result = mysql_query($query) or die(mysql_error());
$rank = 1; // initialize
echo "<table><tr><th>Student Code</th><th>Rank</th><th>Total</th></tr>\n";
while($row = mysql_fetch_assoc($result))
{
echo "<tr><td>{$row['student_code']}</td><td>$rank</td><td>{$row['total']}</td></tr>\n";
if ($rank == 100)
{ break; }
$rank++;
}
echo "</table>\n";
?>

最佳答案

保留当前代码,但在循环外部再添加一个变量,如下所示,再添加一个变量以保持当前分数:

$current_rank = 1;
$current_score = null;

在循环内检查总数是否与您保留的总数相同,如果不同,则将排名分配给当前排名:

if ($current_score != $row['total'])
{
$current_rank = $rank;
}

始终显示 $current_rank,仅当它与前一个不同时才会更改,并且在每次迭代结束时,也更新 $current_score:

$current_score = $row['total'];

我希望这会有所帮助。

关于php - 获取学生的排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30525336/

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