You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算指定科目下学生总分总和并在视图表格中展示

实现步骤

1. 控制器中调用模型方法获取总分值

你写的GetsumScore方法返回的是查询结果对象,CI框架中select_sum('total')查询返回的对象默认会携带total属性存储求和结果,你需要先在控制器中调用该方法,处理后传递给视图,示例代码:

// 控制器中的业务方法
public function showScoreSum()
{
    // 加载自定义模型,替换为你实际的模型名
    $this->load->model('score_model');
    
    // 替换为实际的查询参数值
    $subject_id = 7;
    $session_id = '实际session_id';
    $section_id = 1;
    $class_id =3;
    
    // 调用模型方法获取求和结果
    $sum_result = $this->score_model->GetsumScore($subject_id, $session_id, $section_id, $class_id);
    // 提取总和,无匹配数据时默认设为0避免报错
    $data['subject_total'] = $sum_result ? $sum_result->total : 0;
    // 原有学生成绩列表数据也同步传给视图
    // $data['score_list'] = 你的学生成绩列表查询结果;
    
    // 加载视图并传递所有数据
    $this->load->view('score_view', $data);
}

2. 视图中渲染总和到表格

你可以在原有学生成绩表格末尾新增汇总行展示总和,示例代码:

<table>
  <thead>
    <tr>
      <th>student_id</th>
      <th>class_id</th>
      <th>section_id</th>
      <th>subject_id</th>
      <th>test1</th>
      <th>test2</th>
      <th>total</th>
    </tr>
  </thead>
  <tbody>
    <!-- 原有循环渲染学生成绩的逻辑 -->
    <?php foreach($score_list as $item): ?>
    <tr>
      <td><?= $item->student_id ?></td>
      <td><?= $item->class_id ?></td>
      <td><?= $item->section_id ?></td>
      <td><?= $item->subject_id ?></td>
      <td><?= $item->test1 ?></td>
      <td><?= $item->test2 ?></td>
      <td><?= $item->total ?></td>
    </tr>
    <?php endforeach; ?>
  </tbody>
  <!-- 汇总行展示科目总分 -->
  <tfoot>
    <tr style="font-weight:bold">
      <td colspan="6" style="text-align:right">当前科目总分总和:</td>
      <td><?= $subject_total ?></td>
    </tr>
  </tfoot>
</table>

扩展补充:如果需要同时计算所有科目的总分

可以修改模型方法按科目分组查询即可:

public function getAllSubjectSum($session_id, $section_id, $class_id)
{
    $this->db->select('subject_id');
    $this->db->select_sum('total');
    $this->db->where('session_id', $session_id);
    $this->db->where('section_id', $section_id);
    $this->db->where('class_id', $class_id);
    $this->db->group_by('subject_id');
    return $this->db->get('scores')->result();
}

返回结果是所有科目各自的总分列表,直接循环渲染到汇总表格即可。

内容的提问来源于stack exchange,提问作者MaryPebbles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:48:08