php - How do i update multiple rows with multiple condition in Code Igniter -


i learning php , using codeigniter framework. i'm using code in controller when inserting new data , it's working.

//insert multi rows tabel harga_inventori     $kode_inventori = $_post['kode_inventori'];     $result = array();     foreach($_post['kode_kategori_pelanggan'] $key => $val){         $result[] = array(                 "kode_kategori_pelanggan" => $_post['kode_kategori_pelanggan'][$key],                 "kode_inventori"=>$kode_inventori,                 "harga" => $_post['harga_jual'][$key],                 "diskon" => $_post['diskon'][$key]                 );     }     $res = $this->db->insert_batch('harga_inventori', $result);     redirect("inventori"); 

but when i'm using same pattern updating function, it's not working @ all.

for($i = 0; $i < count($_post['harga_jual'][$i]); $i++) {     if($_post['kode_kategori_pelanggan'][$i] != '') {         $res[] = array(                         'harga' => $_post['harga_jual'][$i],                         'diskon' => $_post['diskon'][$i],                        );         $this->db->where('kode_inventori',$_post['kode_inventori']);         $this->db->where('kode_kategori_pelanggan',$_post['kode_kategori_pelanggan'][$i]);         $this->db->update('harga_inventori',$res);     } } redirect("inventori"); 

i'm trying update_batch() got many errors, i'm using for loop , updating single row @ time.

what problem here?

its typo. should pass array $res not $data, , change $res[] $res since not needed. should check isset() prevent errors of undefined:

for($i = 0; $i < count($_post['harga_jual'][$i]); $i++) {     if(isset($_post['kode_kategori_pelanggan'][$i])) {         $res = array(                         'harga' => $_post['harga_jual'][$i],                         'diskon' => $_post['diskon'][$i],                        );         $this->db->where('kode_inventori',$_post['kode_inventori']);         $this->db->where('kode_kategori_pelanggan',$_post['kode_kategori_pelanggan'][$i]);         $this->db->update('harga_inventori',$res);     } } redirect("inventori"); 

it see of data know trying do. seems little strange initiate counter $i @ same time using array key in loop this: for($i = 0; $i < count($_post['harga_jual'][$i]); $i++)

it know how data in $_post looks like. try remove [$i] in loop. check each post variable set before using them, like:

for($i = 0; $i < count($_post['harga_jual']); $i++) {      if(isset($_post['kode_kategori_pelanggan'][$i])) {          // check if post variables set , if not set default value (in example empty string):         $harga_jual = isset($_post['harga_jual'][$i]) ? $_post['harga_jual'][$i] : '';          $diskon = isset($_post['diskon'][$i]) ? $_post['diskon'][$i] : '';                   $kode_inventori = isset($_post['kode_inventori']) ? $_post['kode_inventori'] : '';         $kode_kategori_pelanggan = $_post['kode_kategori_pelanggan'][$i]; // checked isset above...          $data = array(                     'harga' => $harga_jual,                     'diskon' => $diskon,                        );          $this->db->where('kode_inventori',$kode_inventori);         $this->db->where('kode_kategori_pelanggan', $kode_kategori_pelanggan);         $this->db->update('harga_inventori', $data);     } } redirect("inventori"); 

Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -