【问题标题】:how to update multiple value in codeigniter如何在codeigniter中更新多个值
【发布时间】:2020-04-04 08:44:37
【问题描述】:

我有输入数据,我将用不同的值填充,我会进行多次更新

但我有一个错误是:

“字段列表”中的未知列“数组”更新service SET charges_order = WHERE 数组id_service = '1'

如何克服?

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

【问题讨论】:

    标签: php arrays codeigniter


    【解决方案1】:

    把你的控制器改成这个-

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

    这应该适合你。

    【讨论】:

    • 这会将所有数据发送到数据库吗? (以前的值被新值替换,数据库总是有数组的最后一个元素)
    • @Dum 嘿,我已经更新了代码,看看是否适合你。 :)
    • 我想是的 :) +1
    【解决方案2】:

    你在一个循环中。您必须使用该变量。

    $data = array(
        'charges_order' => $data
    );
    

    【讨论】:

    • 只有一个数据发生了变化@Akintunde-Rotimi
    【解决方案3】:

    您可以将数组转换为字符串,然后更新表格。

    //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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多