Генератор счетов с использованием флажков - неопределенное смещение [2] PHP Codeigniter - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь создать несколько счетов в системе управления школой. Вот вопрос:

Например, у меня есть 10 студентов в БД

Я могу генерировать счета, если студенты выбраны в последовательном порядке. Студент 1, Студент 2, Студент 3, Студент 4

Но как только я пропускаю ученика из последовательного порядка и пытаюсь сгенерировать в случайном порядке, это дает мне неопределенную ошибку смещения: Студент 1, Студент 4, Студент 5, Студент 7

Вот код:

    for($x = 1; $x <= count($this->input->post('studentId')); $x++) {                               
        $insert_data = array(                                   
            'class_id'      => $this->input->post('className'),
            'section_id'    => $this->input->post('sectionName'),
            'student_id'    => $this->input->post('studentId')[$x],         
            'payment_name_id' => $payment_name_id
        );

        $status = $this->db->insert('payment', $insert_data);
    }

    return ($status === true ? true : false);

То же самое относится и к редактированию счетов после их создания. Я даже попытался изменить цикл for на цикл while для этого, что не дает мне никакой ошибки, но просто не сохраняет, если выбранные студенты находятся в случайном порядке:

            $x = 1;
            $form_fields = count($this->input->post('editStudentId')); 

            while($x <= $form_fields) { 

                    if(!empty($this->input->post('editStudentId')[$x])) {
                        $update_payment_data = array(                                   
                            'class_id'      => $this->input->post('editClassName'),
                            'section_id'    => $this->input->post('editSectionName'),
                            'student_id'    => $this->input->post('editStudentId')[$x],         
                            'payment_name_id' => $id
                        );

                        $status = $this->db->insert('payment', $update_payment_data);
                    }

                $x++;
            }

            return ($status === true ? true : false);

ИЗОБРАЖЕНИЕ - ВЫБОР СТУДЕНТОВ: Selecting Students

ИЗОБРАЖЕНИЕ - СОХРАНЕНИЕ ПОЧТЫ С ТОЛЬКО 2 из 4 ВЫБРАННЫХ Я: Post Save

1 Ответ

0 голосов
/ 05 сентября 2018

Заменить for на foreach:

foreach ($this->input->post('studentId') as $studentId) {
    $insert_data = array(                                   
        'class_id'      => $this->input->post('className'),
        'section_id'    => $this->input->post('sectionName'),
        'student_id'    => $studentId,         
        'payment_name_id' => $payment_name_id
    );

    $status = $this->db->insert('payment', $insert_data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...