【问题标题】:How can update a table data by foreach loop in php如何通过php中的foreach循环更新表数据
【发布时间】:2018-06-22 16:11:14
【问题描述】:

如何使用多个数组更新表数据,不明白但尝试。
只更新了一条记录。

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

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

我的代码是:

$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_detail 然后查看:

表格记录

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

【问题讨论】:

  • 你的问题很不清楚。您到底想做什么,实际问题是什么?请向我们展示所有相关代码、详细解释、预期结果示例和您当前得到的结果。请记住,我们对您的代码或您正在尝试做的事情一无所知。请阅读:How to create a Minimal, Complete, and Verifiable exampleHow do I ask a good question?
  • 我想明智地更新表格数据 id。
  • 请仔细阅读我发布的链接并相应地更新您的问题。
  • 奥马尔,请不要张贴图片来传达数据。将数据复制/粘贴为文本

标签: php mysql arrays loops


【解决方案1】:

你应该使用 saveAll();在循环中使用模型时,而不是 save() 函数

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

【讨论】:

    猜你喜欢
    • 2017-01-27
    • 2015-03-25
    • 2014-11-17
    • 2015-06-18
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    相关资源
    最近更新 更多