【发布时间】:2017-12-01 22:38:49
【问题描述】:
我有对学生进行排名的代码,它可以工作,但不是我想要的——如果两个或多个学生得分相同 score 它不会 rank 他们都在同一个 rank。我希望最终的排名是这样的——如果两个或更多的学生score相同的结果,我希望他们rank在同一个地方像这样:
1. miki ==> 97.8
2. lisa ==> 96.1
2. jack ==> 96.1
4. john ==> 90.7
请注意 lisa 和 jack score 相同 (96.1),并且它给了它们相同的 rank (第二个),因此,第三个被跳过。约翰是第 4 名。
当前代码
$student = '10_E';
$first = mysql_query("SELECT * FROM rej_students where student_selected = '$student'");
$teacher = mysql_query("SELECT * FROM teachers WHERE tech_id = '1002'");
$teachers = mysql_fetch_array($teacher);
$avg = mysql_query("SELECT * FROM avgfct_10 order by AVGFCT_10 desc");
$ra = 0; //rank
while ($go = mysql_fetch_array($avg))
{
if ($go['AVGFCT_10'] != $go['AVGFCT_10'])
{
$micky = $ra ++;
}
if ($go['AVGFCT_10'] == $go['AVGFCT_10'])
{
$micky = 'same';
}
echo "id = " . $go['STUDENT_ID'] . "<br> AVARANGE = " . $go['AVGFCT_10'] . "<br>RANK = " . $micky . "<br> Class = " . $teachers['tech_hclass'] . "<br><br>";
}
【问题讨论】:
-
最好在此处包含代码,因为链接可能会被删除。另外,请阅读tour ..
-
这将比医疗保健账单更快地被否决(抱歉不得不这样做) - 按照@Naruto 的建议阅读游览,然后再试一次 :)
-
请不要发布代码图片。将代码本身作为文本发布
-
每次在新代码中使用the
mysql_数据库扩展this happens 时,它都已被弃用,并且已经存在多年,并且在 PHP7 中永远消失了。如果您只是学习 PHP,请花精力学习PDO或mysqli数据库扩展和预处理语句。 Start here
标签: php mysql sorting sql-order-by