Codeigniter:更新多个购物车项目

时间:2016-10-20 11:09:47

标签: php mysql arrays codeigniter

我正在使用Codeigniter购物车。我想更新多个购物车项目。这就是我正在做的事情

public function updatecart(){

    foreach ($this->input->post() as $value){
        $this->cart->update(array(
            'rowid'      =>     $value['rowid'],
            'qty'        =>     $value['qty'],
        ));
    }
    redirect(base_url().'product/cart');
}

此代码仅更新购物车中的第一项而不是更新所有项目,需要您的帮助来修复它,如果我print_r($this->input->post());这就是我得到的。

Array
(
    [1] => Array
        (
            [rowid] => ad61ab143223efbc24c7d2583be69251
            [qty] => 7
        )

    [2] => Array
        (
            [rowid] => d09bf41544a3365a46c9077ebb5e35c3
            [qty] => 1
        )

)

当我更新它时只更新第一个数组索引的数据索引

2 个答案:

答案 0 :(得分:0)

创建数组后,将其传递给它。

foreach ($this->input->post() as $value){
   $data[] = array(
      'rowid'      =>     $value['rowid'],
      'qty'        =>     $value['qty'],
    );
 }

$this->db->update_batch('mytable', $data, 'rowid');

这应该更新数组中包含rowid的每一行,它也会更快

答案 1 :(得分:0)

您可以使用

 public function updatecart(){
       $roids=$this->input->post('rowid');
      $gty=$this->input->post('qty');
if (!empty($roids)) {
   foreach($roids as $index=> $val ) {
      $data = array(
              'rowid' => $val ,
               'qty'    => $gty[$index]
            );
       $this->cart->update($data);
     }
}
}