首页 > 解决方案 > 在codeigniter中更新批处理时插入新行

问题描述

我遇到了一个问题,我不知道如何在 codeigniter 中更新批处理时插入新行。这是我的更新批处理代码,工作正常,但需要有关插入新行的帮助。

$input_data = $this->input->post();
for($i = 0; $i < sizeof($input_data['iid']); $i++) {
    $batch[] = array(
        'id'            =>  $input_data['iid'][$i],
        'desc'          =>  $input_data['desc'][$i],
        'size'          =>  $input_data['size'][$i],
        'stock'         =>  $input_data['stock'][$i],   
        'color'         =>  $input_data['color'][$i],
        'qty'           =>  $input_data['qty'][$i], 
        'price'         =>  $input_data['price'][$i],
        'linetotal'     =>  $input_data['linetotal'][$i],
    );
}

$this->db->update_batch('invoice_data', $batch, 'id');
$this->session->set_flashdata('success', 'Data added successfully.');
$this->session->set_flashdata('id', $id);
redirect('invoices');

在此处输入图像描述

但是当我用新数据添加新行时,它什么也不做。甚至不添加新的行 ID。请帮忙

标签: phpcodeigniter

解决方案


this will work if you are using array in inputs like this
<input type="text" name="size[]">

function save_data() {
    if (isset($_POST['size']) && !empty($_POST['size'])) { // you can  take any field excluding id 
        foreach ($_POST['size'] as $key => $value) {
            $batch = array();
            $batch['desc'] = $_POST['desc'][$key];
            $batch['size'] = $_POST['size'][$key];
            $batch['stock'] = $_POST['stock'][$key];
            $batch['color'] = $_POST['color'][$key];
            $batch['qty'] = $_POST['qty'][$key];
            $batch['price'] = $_POST['price'][$key];
            $batch['linetotal'] = $_POST['linetotal'][$key];
            if (isset($_POST['id'][$key]) && !empty($_POST['id'][$key])) { // if your id is blank means new data otherwise update it with given id
                $id = $_POST['id'][$key];
                $this->db->update_batch('invoice_data', $batch, 'id');  //pass id in it
            } else {
                $this->db->insert('invoice_data', $batch);
            }
        }
        $this->session->set_flashdata('success', 'Data added/updated successfully.');
        redirect('invoices');
    }
}

推荐阅读