简体   繁体   English

在codeigniter中更新批处理时插入新行

[英]Insert new row while update batch in codeigniter

I am getting an issue, i dont know how to insert new row while update batch in codeigniter.Here is my update batch code, working fine but need assistance about inserting new row.我遇到了一个问题,我不知道如何在 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');

在此处输入图片说明

But when i add new row with new data it will do nothing.但是当我用新数据添加新行时,它什么也不做。 Even dont add new row id.甚至不添加新的行 ID。 Please help请帮忙

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');
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM