【发布时间】:2017-10-14 13:50:20
【问题描述】:
你,
我正在做一些学校项目,我在这件事上堆积了我希望我能得到正确答案的事情是我试图对一个班级的学生进行排名并且它有效,但如果两个学生的成绩相同,它就不会给出他们相同的等级我希望它给他们相同的等级并跳到下一个等级并再次进入处理。
<?php $result = mysql_query("SELECT * FROM score ORDER BY AVERAGE");
$rank= 0; while($go = mysql_fetch_array($result)){$miki = ++$rank;
$sql = mysql_query("INSERT INTO rank(student_id,avg,rank) VALUES('$go['student_id']','$go['avg']','$miki')"); } ?>
它有效,它排名,但如果两个学生的平均成绩相同,则他们的排名不同。
【问题讨论】:
-
是的,您似乎知道问题所在,那么您打算如何解决?
-
首先,不要使用 mysqli 函数。它们是折旧的。使用 mysqli 或 PDO 函数。
-
第二,'++$rank'不会增加$rank,你需要在字符串之外做。 mysql会将其视为(如果$rank为0)'++0'
-
您必须使用一个新变量来保持当前平均值,以便您可以将其与下一个进行比较。