如何通过php中的foreach循环更新表数据

时间:2018-01-13 10:46:36

标签: php mysql arrays loops

如何使用多个数组更新表数据,无法理解但是尝试 只有一个记录更新。

roaster_detail表将由$ array4数据更新。 我添加了3张图片:

  1. $ array4(此数据为新数据,用于更新roaster_detail表)。
  2. roaster_detail(这是旧数据,某些字段将更新为id)。
  3. 表记录格式(当我执行我的代码然后更新一条记录,但我想更新所有记录)。
  4. 我的代码是:

    $array4 = array_chunk($array3, 1);        
    
    foreach ($array4 as $result) {
    
        $roaster_detail = $this->RoasterDetail->query("Select * FROM roaster_details WHERE roaster_details.date = '$date_' AND roaster_details.shift_name_time = '$nishift_name_time3' AND roaster_details.status = 'back data' limit 0,1");
    
        if (!empty($roaster_detail['0']['roaster_details']['id'])) {
            $this->request->data['RoasterDetail']['id'] = $roaster_detail['0']['roaster_details']['id'];
        }
        $this->request->data['RoasterDetail']['emp_id'] = $result[0];
        $this->request->data['RoasterDetail']['roasters_histories_id'] = $data['id'];               
        $this->request->data['RoasterDetail']['status'] = 'up data';
        $this->RoasterDetail->create();
        $this->RoasterDetail->save($this->request->data['RoasterDetail']);
    }
    

    当我打印 $ array4 时,请查看:

    enter image description here

    当我打印 $ roaster_detail 时,请查看:

    enter image description here

    表记录

    enter image description here

    我的要求是:更新所有记录。现在只更新一条记录。

1 个答案:

答案 0 :(得分:0)

你应该使用saveAll();在循环

中使用模型时,而不是save()函数
 $this->RoasterDetail->saveAll($this->request->data['RoasterDetail']);