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

6tqwzwtp  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(434)

我怎么能用多个数组更新一个表的数据呢,不懂但是试试看。
只更新一次记录。
roaster\u detail表将由$array4数据更新。我添加了3张图片:
$array4(此数据是新的,用于更新roaster\u detail表)。
roaster\u详细信息(这是旧数据,某些字段将按id更新)。
表记录格式(当我执行代码时,更新一条记录,但我想更新所有记录)。
我的代码是:

$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时,请查看:

打印$roaster\u详细信息时,请查看:

表记录:

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

axzmvihb

axzmvihb1#

您应该使用saveall();而不是save()函数

$this->RoasterDetail->saveAll($this->request->data['RoasterDetail']);

相关问题