如何根据学生的总分获得学生的位置

问题描述

这段代码只是给了我 1 作为我所有学生的位置。我希望学生根据他们的总数来确定他们的位置。如果他们总共是平局,它也应该能够处理。任何帮助将不胜感激 下面是我的代码

$getStudPosition=MysqLi_query($conn,"SELECT  sum(sr.total) AS gtot FROM  student_result sr WHERE   sr.studentId='$id' ORDER BY resId DESC");
        while ($r=MysqLi_fetch_array($getStudPosition)) 
        {
            $students = array($gTotal=$r['gtot']);// convert to array
            $pos = $real_pos = 0;
            $prev_score = -1;
          foreach ($students as $exam_n => $score) 
            {
              $real_pos += 1;
              $pos = ($prev_score != $score) ? $real_pos: $pos;
              $prev_score = $score;
            }
            $average = $score/$totSubject; //getting students average
        }

This is the screenshot of my output

我正在运行 10.4.18 版本的 MariaDB。

解决方法

看起来您正在尝试在循环内一次一个地获取学生的位置?一次获得所有这些人的位置会更有效率。为此,您只需使用 https://mariadb.com/kb/en/rank/。如果没有我们要求的信息,很难给出更详细的答案。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...