【问题标题】:how to update looping form in codeigniter 3?如何更新 codeigniter 3 中的循环形式?
【发布时间】:2023-01-11 17:02:05
【问题描述】:

我有一个问题,我想更新 codeigniter 3 中的循环形式。在 nik_pindah 列中,id_surat 是相同的

---我的表格验证控制器---

public function update_nik_pindah_kelurahan($id_surat_pindah){
    $this->load->library('form_validation');    
    $i = 0; // untuk loopingnya
    $a = $this->input->post('nik_pindah');
    if ($a[0] !== null){
        foreach ($a as $row => $val){
            $this->form_validation->set_rules("nik_pindah[$i]","nik_pindah", "integer|callback_nik_pindah_available");
    }
    }
    $this->form_validation->set_message('required', 'Mohon isi %s terlebih dahulu');
    $this->form_validation->set_message('integer', 'Isi %s hanya menggunakan angka');
    if ($this->form_validation->run() == FALSE){
    $this->edit_nik_pindah_kelurahan($id_surat_pindah);
    } else {
    $id_surat_pindah = $this->input->post('id_surat_pindah');
    $id_surat    = $this->input->post('id_surat');
    $i       = 0; // untuk loopingnya
        $a       = $this->input->post('nik_pindah');            
        if ($a[0] !== null) {
            $data = array(
        'id_surat'    => $id_surat,             
        'id_surat_pindah' => $id_surat_pindah
             );
            foreach ($a as $row) {
                $dataaa = [             
            'id_surat'  => $id_surat_pindah,
            'nik_pindah'    =>$row,
        ];
                $wheree = array(
            'id_surat' => $id_surat_pindah
        );
                $this->db->where('id_surat', $id_surat_pindah);
        $update = $this->db->update('nik_pindah', $dataaa);
        if ($update) {
                $i++;
        }
    }
        $where = array(
        'id_surat_pindah' => $id_surat_pindah
    );
        $this->m_pindah_kelurahan->update_data($where, $data, 'surat_pindah');
    }
    redirect('admin_pindah_kelurahan/index');
}
}

---我的控制器没有表单验证---

public function update_nik_pindah_kelurahan($id_surat_pindah){
    if ($this->form_validation->run() == FALSE){
    $id_surat_pindah = $this->input->post('id_surat_pindah');
    $id_surat    = $this->input->post('id_surat');
    $i       = 0; // untuk loopingnya
        $a       = $this->input->post('nik_pindah');        
        if ($a[0] !== null) {
            $data = array(
            'id_surat'          => $id_surat,               
        'id_surat_pindah'   => $id_surat_pindah
        );
            foreach ($a as $row){
                $dataaa = [             
            'id_surat'  => $id_surat_pindah,
             'nik_pindah'   =>$row,
            ];
            $wheree = array(
        'id_surat' => $id_surat_pindah
        );
            $this->db->where('id_surat', $id_surat_pindah);
            $update = $this->db->update('nik_pindah', $dataaa);
            if ($update) {
         $i++;
            }
    }
        $where = array(
        'id_surat_pindah' => $id_surat_pindah
    );
        $this->m_pindah_kelurahan->update_data($where, $data, 'surat_pindah');
}
redirect('admin_pindah_kelurahan/index');
}
}

---我的观点---

<?php 
  foreach ($nik_pindah_kelurahan as $np) :
    if (empty($np->nik_pindah)) { ?>
       <input type="text" name="nik_pindah" class="form-control" value="belum tersedia"><br>
    <?php } else {?>            
       <input type="text" name="nik_pindah[]" class="form-control" value="<?php echo $np->nik_pindah ?>"><br>
  <?php } endforeach; ?>

如果有或没有表单验证将更新数据但 id_surat 相同的所有列(不是特定值)

像这样:

enter image description here然后enter image description here

【问题讨论】:

    标签: php codeigniter codeigniter-3


    【解决方案1】:

    每次 foreach 进行循环时,$this-&gt;db-&gt;where() 都有相同的条件,因为 $id_surat_pindah 始终具有相同的值,因此您一次又一次地更新相同的行。另外(如果我理解正确的话)请记住,如果 $id_surat_pindah 不是唯一键,则每次进行 UPDATE 时,所有具有其值的行都会受到影响。

    否则,我建议您使用update_batch()而不是循环来检查您的代码:https://www.codeigniter.com/userguide3/database/query_builder.html?highlight=update_batch

    【讨论】:

      猜你喜欢
      • 2020-12-02
      • 2013-06-17
      • 2016-11-22
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      相关资源
      最近更新 更多