数据未按所选ID

时间:2016-12-24 08:47:14

标签: php mysql codeigniter-2

这是我的表格tbl_toolstbl_tool_usetbl_tools表看起来像这样

id  name            quantity    available   type        
5   cutting player     5          5        engineer     
6   reflectors         2          2        team     
7   spanner            8          8        engineer     
8   tester             4          4        team     

tbl_tool_use看起来像这样

id  user_id     type       tool_id    quantity  start_date  end_date
92     27      engineer     7,5         2,4          2016-12-24         

这是我的更新代码

            $t_id = $this->input->post('tool_id'); //array of id
            $qty = $this->input->post('quantity'); //array or qty
            $updateArray = array();
            for($x = 0; $x < sizeof($t_id); $x++){
             $updateArray[] = array(
             'id'=>$t_id[$x],
             'available' => $qty[$x]

             );
             }      
             $this->db->update_batch('tbl_tools',$updateArray, 'id');

这是我的代码,请等一下。

public function edit_available($tool_id=null,$quantity=null)
{



    $tool_id=array(7,5);
    $quantity=array(2,4);


    $this->db->where_in('id',$tool_id);
    $data=array('available'=>$quantity);
    $query=$this->db->update('tbl_tools',$data);
    if($query)
    {
            return true;
    }
    else
    {
            return false;
    }
}

此处提供的tool_id分别为75,所选数量分别为24。当我使用我的代码时,只有第一个值quantity中的id正在变更,根据所选内容进行更改,请帮助我解决问题

1 个答案:

答案 0 :(得分:2)

首先在下面描述工具ID和数量的数组

$data = array(
       array(
          'id' => '7' ,
          'available' => '3'
       ),
       array(
          'id' => '5' ,
          'available' => '2' ,
       )
    );

然后执行批量更新

$this->db->update_batch('tbl_tools', $data, 'id'); 

参考:如何制作多维数组

$tool_id=array(7,5);
$quantity=array(3,2);
$data = array();
$i = 0;
foreach($tool_id as $t){
   $data[$i]['id'] = $t;
   $data[$i]['available'] = $quantity[$i];
   $i++;
}