mysql — рейтинг тех же студентов в переполнении стека

гип,

Я делал какой-то школьный проект, и я собрал все это, я надеюсь, что получу правильный ответ, потому что я пытался дать оценку одному ученику, и это работает, но если два ученика набрали одинаковый результат, это не даст им одинакового результата. Я хочу, чтобы он присвоил им одинаковый ранг, перешел на следующий ранг и снова занялся обработкой.

<?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')"); } ?>

это работает, это оценивает, но если два студента получают одинаковое среднее значение, это не будет оценивать их одинаково.

0

Решение

Вы хотите кэшировать среднее значение из последнего запуска и его рейтинг, попробуйте это:

<?php $result = mysql_query("SELECT * FROM score ORDER BY AVERAGE");
$rank=0;
$cache_average=null;
$cache_rank=0;

while($go = mysql_fetch_array($result)) {
if($go['avg'] != $cache_average)
$cache_rank = $rank;

$sql = mysql_query("INSERT INTO rank(student_id,avg,rank) VALUES('$go['student_id']','$go['avg']','$cache_rank')");

$cache_average = $go['avg'];
$rank++;
}
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector