How to perform batch upgrade using Codeigniter arrays?

Hi guys, I just want to ask how can I perform a batch update using arrays in CodeIgniter Here is my sample code:

public function updateItemInfo(){ $id = $this->input->post('idx'); //array of id $desc = $this->input->post('itemdesc'); //array of item name $qty = $this->input->post('qty'); //array or qty $price = $this->input->post('price'); //array of price $code = $this->input->post('codes'); // not array for($x = 0; $x < sizeof($id); $x++){ $total[] = $price[$x] * $qty[$x]; $updateArray = array( 'item_desc' => $desc[$x], 'item_qty' => $qty[$x], 'price' => $price[$x], 'total' => $total ); $this->db->where('poid',$id[$x]); $this->db->update('po_order_details',$updateArray); //Could not update I don't know why } //echo "<pre>"; //print_r($updateArray); $sumoftotal = array_sum($total); $vat_amt = $sumoftotal / 1.12; $vat_input = $vat_amt * 0.12; $total_all = $vat_amt + $vat_input; $updateTotal = array( 'vatable_input' => $vat_amt, 'vatable_amount' => $vat_input, 'total_amount_due' => $total_all ); //echo "<pre>"; //print_r($updateTotal); //exit; $this->db->where('order_code',$code); $this->db->update('po_order_total',$updateTotal); //Here also couldn't update } 

What is my code And I can’t understand where my error is. Ia also checked my array values ​​and there is no error in my array. My problem is that I cannot update my table using batch update.

+8
codeigniter
source share
1 answer

Try to see update_batch here: http://ellislab.com/codeigniter/user-guide/database/active_record.html

CodeIgniter 3.x: http://www.codeigniter.com/user_guide/database/query_builder.html?highlight=where#CI_DB_query_builder::update_batch

You can create an array with all your options, and then send it to the batch_update function.

 $id = $this->input->post('idx'); //array of id $desc = $this->input->post('itemdesc'); //array of item name $qty = $this->input->post('qty'); //array or qty $price = $this->input->post('price'); //array of price $code = $this->input->post('codes'); // not array $updateArray = array(); for($x = 0; $x < sizeof($id); $x++){ $total[] = $price[$x] * $qty[$x]; $updateArray[] = array( 'poid'=>$id[$x], 'item_desc' => $desc[$x], 'item_qty' => $qty[$x], 'price' => $price[$x], 'total' => $total ); } $this->db->update_batch('po_order_details',$updateArray, 'poid'); 
+16
source share

All Articles