как обновить множественное значение в codeigniter - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть входные данные, которые я буду заполнять различными значениями, я делаю несколько обновлений

, но у меня есть ошибка:

Неизвестный столбец 'Массив' в поле ' list 'UPDATE service SET charges_order = WHERE массив id_service =' 1 '

как это преодолеть?

пример img

Вид

<?php $no = 1; foreach ($invoice as $m) { ?>
<tbody id="tbody">
        <form class="form-signin" method="post" action="<?php echo base_url();?>backend/report/update/<?php echo $m->id_service; ?>">
            <tr class="deleted">
                <td><input type="text" class="form-control" name="charges_order[]" value="<?php echo $m->charges_order;?>"></td>
            </tr>
        </form>
</tbody>
    <div class="box-footer">
    <button type="submit" class="btn bg-blue btns-flat margin">Simpan</button>
    </div>

<?php } ?>

Контроллер

public function update($id_service)
{
    foreach ($this->input->post('charges_order') as $data) {
        $data = array(
            'charges_order' => $this->input->post('charges_order')
        );
        // echo '<pre>', print_r($data);
        $this->M_report->update($id_service, $data);
        redirect('backend/report');
    }
}

Модель

public function update($id_service, $data)
{
    $this->db->where('id_service', $id_service);
    $this->db->update('service', $data);
}

Ответы [ 3 ]

1 голос
/ 04 апреля 2020

Измените свой контроллер на это-

public function update($id_service){  
    $charges_order = json_encode($this->input->post('charges_order'));

    $data = array(
                'charges_order' => $charges_order
            );
    $this->M_report->update($id_service, $data);       
    redirect('backend/report');
}

Это должно работать для вас.

0 голосов
/ 04 апреля 2020

Вы можете преобразовать массив в строку и затем обновить таблицу.

//example
[1,2,3,4] -> "1,2,3,4"

Вот код

public function update($id_service)
{
    $data = array(
        'charges_order' => implode(",", $_POST['charges_order'])
    );
    // echo '<pre>', print_r($data);
    $this->M_report->update($id_service, $data);
    redirect('backend/report');
}

Когда вы извлекаете, вы можете полностью изменить процесс

public function get_orders($id_service)
{
    $this->db->select('charges_order');
    $this->db->where('id_service', $id_service);
    $result = $this->db->get('service')->result_array();
    return explode(",", $result["charges_order"]); //returns an array
}
0 голосов
/ 04 апреля 2020

Вы находитесь в oop. Вы должны использовать переменную.

$data = array(
    'charges_order' => $data
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...