Codeigniter L oop Обновляет записи с одиночными данными - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь редактировать оценки учеников. как изображение ниже. Каждый раз, когда я добавляю оценки для редактирования, мой l oop обновляет все оценки только последней оценкой в ​​форме, найденной под изображением формы, моим кодом и результатом SQL, когда данные редактируются.

enter image description here

Ниже приведен код моего контроллера.

$fetch_session = $this->Home_model->SemesterSession();
$session = $fetch_session[0]->session;
$semester = $fetch_session[0]->semester;

// Form data
$unit = array();
$score = array();
$course = array();
$matno = $this->input->post('matno22');
$dept = $this->input->post('department22');
$level = $this->input->post('level22');
$score1 = $this->input->post('score');
$course1 = $this->input->post('c_code');
$unit1 = $this->input->post('unit');

// for each

    for ($i=0;$i<count($course1);$i++) {
        $data['score'] = $score1[$i]; //1
        $data['unit'] =  $unit1[$i];
        $data['matno'] = $matno;
        $data['level'] = $level;
        $data['dept'] = $dept;
        $data['course'] = $course1[$i];
        $data['semester'] = $semester;
        $data['session'] = $session;

        if ($data['score'] >=69) {
            $data['grade'] = 'A';  //2
$data['remark'] = 'Excellent'; //5
$data['grade_point'] = '5';  //3
$data['quality_p'] = $data['unit'] * $data['grade_point']; //4
        } elseif ($data['score'] >= 59) {
            $data['grade'] = 'B';
            $data['remark'] = 'Very Good';
            $data['grade_point'] = '4';
            $data['quality_p'] = $data['unit'] * $data['grade_point'];
        } elseif ($data['score'] >=49) {
            $data['grade'] = 'C';
            $data['remark'] = 'Good';
            $data['grade_point'] = '3';
            $data['quality_p'] = $data['unit'] * $data['grade_point'];
        } elseif ($data['score'] >=44) {
            $data['grade'] = 'D';
            $data['remark'] = 'Fair';
            $data['grade_point'] = '2';
            $data['quality_p'] = $data['unit'] * $data['grade_point'];
        } elseif ($data['score'] >=39) {
            $data['grade'] = 'E';
            $data['remark'] = 'Poor';
            $data['grade_point'] = '1';
            $data['quality_p'] = $data['unit'] * $data['grade_point'];
        } else {
            $data['grade'] = 'F';
            $data['remark'] = 'Fail';
            $data['grade_point'] = '0';
            $data['quality_p'] = $data['unit'] * $data['grade_point'];
        }

        // Edit The Scores
        $query = $this->Home_model->EditResult($data);

        if ($query == true) {
            $response['Error'] = 'false';
            $response['Message'] = 'Result Successfully Modified';
        } else {
            $response['Error'] = 'true';
            $response['Message'] = 'Error Modifying Result';
        }
    }
    echo json_encode($response);
}

вот моя модель

public function EditResult($data) {
    $condition = "matno = " . "'" . $data['matno'] . "' AND " . "course =" . "'" . $data['course'] . "' AND " . "semester =" . "'" . $data['semester'] . "' AND " . "session =" . "'" . $data['session'] . "'";      
        $this->db->where($condition);
    $this->db->update('result', $data);
    }

Наконец, это то, что происходит в моей таблице БД, когда я обновляю оценки

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...