当前位置: 首页 > 知识库问答 >
问题:

从最高到最低排序总分

阎兴为
2023-03-14

我有一张叫‘宽床单’的桌子。这是一个班级学生所有学科总分的汇总之处。

通过此查询获得了每个主题的总数

 public function getTotalMarksForStudnets($subject_id,$student_id,$table,$totField){
        $this->db->select($totField);
        $this->db->where('subject_id', $subject_id);  
        $this->db->where('student_id', $student_id); 
        $q = $this->db->get($table);
        if($q->num_rows() > 0){
            return  $q->row()->$totField;
        }else{
            return '0'; 
        }
      }

并用此显示

<td style="border: 1px solid black; font-size:11px;width:120px;text-align:center;">
            <?php 
              $totalMarks = $this->student_model->getTotalMarksForStudnets($tmrow['subject_id'],$stdName['pstudent_id'],$table,$totField);
             $gtotal =  $gtotal + $totalMarks;
             if($totalMarks!=0){
              $totSubjects =  $totSubjects + 1;
             }
            echo $totalMarks;
            ?></td>

而总体总数显示为

<td style="border: 1px solid black; font-size:11px;width:120px;text-align:center;"><?php echo $gtotal;?></td>

一切都很顺利,直到我不得不对表格进行排序,从总分最高到最低。表现在应该如下所示:

我真的被困住了。我从这里怎么走?

好吧,按照@titi的建议,我做了一个group_by查询,得出了这样的结果:

 public function getOverallMarksForStudnets($subject_id,$student_id,$table,$totField){
        $this->db->select_sum($totField);
        $this->db->where('subject_id', $subject_id);  
        $this->db->where('student_id', $student_id); 
        $this->db->group_by('subject_id', $subject_id);  
        $this->db->group_by('student_id', $student_id);
        $this->db->order_by($totField, 'DESC');
        $q = $this->db->get($table);
        if($q->num_rows() > 0){
            return  $q->row()->$totField;
        }else{
            return '0'; 
        }
      }

如果这是正确的,我如何显示它?

共有1个答案

关学
2023-03-14

可以在查询中添加Order By语句

$this->db->order_by($totfield,“desc”);

desc用于降序或asc用于升序

已编辑

像这样的事情怎么样:

$this->db->select( SUM($totField) );
$this->db->group_by( 'student_id', 'subject_id' );
$this->db->order_by( $totField , 'DESC');
$q = $this->db->get($table);

结果将是一个数组,包含每对学生/科目的总分,并按总分排序。

 类似资料:
  • 问题内容: 我想按从高到低的顺序进行排序。 问题答案: java.util.Collections.sort(列表,比较器) 您将需要写一个

  • 我有2个使用的测试查询,但这两个查询都没有正确排序数据。执行以下语句后: 第一个查询 第二次查询 我正在从数据库中获取以下值: 第一个结果 第二个结果 我想要这样的东西 我的数据

  • 问题内容: 我当前正在编写一个程序,其中用户必须输入10个数字,然后输出将是最高数字和最低数字。我的代码有问题,但找不到。 问题答案: 以不同的方式初始化值: 如果将它们都初始化为零,则永远不会有小于零的“最高”值或大于零的“最低”值

  • 我试图排序的hashmap的结构的值从高到低。 我在下面创建了一个函数来对数据进行排序。 我收到以下错误: 异常在线程"main"java.lang.ClassCastException:类java.lang.String不能转换为类java.lang.整数(java.lang.String和java.lang.整数在加载器'bootstrap'的模块java.base) 我相信我的错误是由上面的

  • 我现在被要求创建一个机器代码,它将生成多个不同的随机素数,并将其输出从最高素数显示到最低素数 我已经做了一个isPrime方法,输出只给我1个随机质数。 我希望731 11 971 53 17的输出

  • 问题内容: 我尝试在执行以下命令后获得具有最高/最低编号的行: 这是我的测试数据 为了获得最低的价值,我将使用 现在,id是,但应该是。 我也尝试了加入: 如何根据最低的结果为每个结果获取正确的ID ? 问题答案: 我认为这是您要实现的目标: 输出: ID 价值 姓名 1个 10 第1行 4 5 第2行 在这里,我使用minVal和Name自联接了表。