Postingan lainnya
Cara mengguankan Update Batch pada codeiginiter
Mau tanya , untuk format update batch seperti apa ya , jika menggunakan foreach ?? untuk insert nya saya menggunakan
$id_quotation = $this->input->post('id_quotation');
foreach ($_POST['dt'] as $dt) {
$this->db->set('id_quotation' , $id_quotation);
$this->db->insert('quotation_detail' , $dt);
}
Nah pada saat update nya seperti apaa jika dengan contoh insert seperti di atas ? Mohon bantuan nya ,,
9 Jawaban:
Sesuai yang disini https://www.codeigniter.com/user_guide/database/query_builder.html?highlight=where#CI_DB_query_builder::update_batch
pake metode update_batch(table, fieldArray, value)
cek juga insert_batch buat metode insernya
pertanyaannya btw mau pake update_batch atau ngga? sama yang contoh mau diupdate yang field mana
dari contoh insert yang atas , yg saya buat menyimpan 5 rows. Nah saya ingin update ke 5 rows tersebut ..
foreach ($_POST['user'] as $user)
{
}
$this->db->update_batch('bd' , $user);
saya bingung pada saat menambahkan komponen value nya .. " update_batch(table, fieldArray, value)"
coba klik linknya disana ada contoh penggunaan update_batch, saya ngga ngerti kolom yang mana yang mau diupdate, struktur tablenya seperti apa dll.
ini contoh nya
itu ada 2 rows , nah jika saya ingin mengupdate kedua nya itu bagaimana ? saya coba menggunakan update batch, tapi bingung value nya yg mana ..
"value" di update_batch kaya metode WHERE nya mau berdsasarkan apa updatenya. Contoh dibawah mau update kolom "name" dan "address" berdasarkan title (valuenya)
$data = [
[
'title' => 'My title' ,
'name' => 'My Name' ,
'address' => 'My address'
],
[
'title' => 'My title 2',
'name' => 'My Name 2' ,
'address' => 'My address 2'
]
];
$this->db->update_batch('namatable', $data, 'title');
//SQLnya nanti
// UPDATE `namatable` SET `name` = CASE
// WHEN `title` = 'My title' THEN 'My Name'
// WHEN `title` = 'My title 2' THEN 'My Name 2'
// ELSE `name` END,
// `address` = CASE
// WHEN `title` = 'My title' THEN 'My address'
// WHEN `title` = 'My title 2' THEN 'My address 2'
// ELSE `address` END
// WHERE `title` IN ('My title', 'My title 2')
Jawaban Terpilih
ini jawaban yang benar nya yaaa ..
$data = array();
foreach($_POST['dt'] as $user)
{
$data[] = $user;
}
$this->db->update_batch('product_detail' , $data , 'id_product_detail' );
Bagaimana jika berdasarkannya lebih dari 1