如何使用Codeigniter数组执行批量更新? [英] How to perform a batch update using Codeigniter arrays?
问题描述
你好,我只想问我如何使用CodeIgniter中的数组执行批量更新
这是我的示例代码:
Hello guys I just want to ask how can I perform a batch update using arrays in CodeIgniter Here's 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
}
这是我的代码我不知道它在哪里我的错误。 Ia也检查了我的数组值,我的数组没有错误。我的问题是我无法使用批量更新更新我的表。
That's my code And I can't figured it out where's my error. Ia also checked my array values and there's no error in my array. My problem is I can't update my table using batch update.
推荐答案
尝试看到 update_batch
选项: 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
CodeIgniter 3.x: http://www.codeigniter.com/user_guide/database/query_builder.html?highlight=where#CI_DB_query_builder::update_batch
您可以使用所有选项创建数组
,然后将其发送到 batch_update
函数。
You can create an array
with all your option 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');
这篇关于如何使用Codeigniter数组执行批量更新?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!