我如何回应学生的位置/排名?

我已经在这个问题上讨论了好几个小时了。我想我不妨把它放在这里,这样你们就可以帮助我。

我正在尝试根据学生在考试中的分数总和来显示他们的位置/排名。

经过多次 StackOverflow 搜索,我找到了一个适合我的需求,因为我想要一个密集的排名。

这是我的查询

SELECT `student_id`,rank,total_score
       FROM (SELECT *,IF(@marks=(@marks:=total_score),@auto,@auto:=@auto+1) AS rank 
       FROM (SELECT * FROM 
      (SELECT `student_id`,SUM(`h_tot_score`) AS total_score,`class_id`,`section_id`
      FROM hscores_primary,(SELECT @auto:=0,@marks:=0) as init WHERE `class_id`= ? and `section_id`= ? and `session_id`= ? and `student_id`= ?
      GROUP BY `student_id` ) sub ORDER BY total_score DESC)t) as result

我的输出是:

student_id  rank  total_score
105          1      1126
3912         2      1103
3913         3      1081
11           3      1081
48           4      1041
33           5      1039

所以,现在的问题是在我看来显示排名。 这个查询对我来说很奇怪,我绝对知道我做得不对。

首先,这是我在模型中放置查询的方式

 public function getclassposition($student_id,$session_id,$section_id,$class_id) 
    {

        $data = $this->db
     ->query("SELECT `student_id`,@marks:=0) as init WHERE `class_id`= ? and `section_id`= ? and `session_id`= ? and `student_id`= ?
      GROUP BY `student_id` ) sub ORDER BY total_score DESC)t) as result")
     ->row(); 
    }

然后我将它传递给控制器​​

 public function getclassposition($student_id,$class_id)
    {
        $data = $this->hprimary_model->getclassposition($student_id,$class_id); 
        return  $data;
    }

然后是我的观点

 Position : <?php echo $CI->getclassposition($value->student_id,$value->session_id,$value->section_id,$value->class_id); ?>

一切都搞砸了,但我真的不知道我在做什么。

我想要一个结果,而不是一个数组。

请帮忙。

qiyugfh0715021 回答:我如何回应学生的位置/排名?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/345.html

大家都在问