我无法汇总单个学生的数据

时间:2019-09-24 17:10:08

标签: php codeigniter codeigniter-3

在我的应用中,我想对各个标记求和。

假设第一个学生册编号11,我想添加所有学生册编号11。在学生册11之后,它将是学生册编号12,然后是13 14,依此类推。在我的代码中,我可以将所有标记加在一起,但是根据学生名册编号将它们分开。在下面,我给出了一个代码。

请大家帮我。

控制器代码:

if ($this->input->post('save_exam') == "save_exam") {
    $ex_array = array();
    $exam_id = $this->input->post('exam_id');
    $student_array = $this->input->post('student');
    $exam_array = $this->input->post('exam_schedule');
    $total_marks =0;
    foreach ($student_array as $key => $student) {
        foreach ($exam_array as $key => $exam) {
            $record['get_marks'] = 0;
            $record['attendence'] = "pre";
            if ($this->input->post('student_absent' . $student . "_" . $exam) == "") {
                $get_marks = $this->input->post('student_number' . $student . "_" . $exam);
                $record['get_marks'] = $get_marks;
                $total_marks = $total_marks + $get_marks;
            } else {
                $record['attendence'] = $this->input->post('student_absent' . $student . "_" . $exam);
            }
            $record['exam_schedule_id'] = $exam;
            $record['student_id'] = $student;
            $record['exam_id'] = $this->input->post('exam_id');

            $inserted_id = $this->examresult_model->add_exam_result($record);

            if ($inserted_id) {
                $ex_array[$student] = $exam_id;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您将$ total_marks创建为一个简单变量。因此,它具有一个价值-每个人的价值。它必须是一个数组。不要将其设置为零-将其设置为空数组。

$total_marks = array();

遍历学生数组时,请在总分数组中创建一个索引并将其初始化为零:

$total_marks[$student] = 0;

重要说明:您将在两个for循环中重用$ key。不好的做法!

现在,当您将总分值添加到时,仅将其添加到该索引中:

$total_marks[$student]+= $get_marks;

完成后,$ total_marks将是一个数组,每个学生一个元素。