【发布时间】:2018-11-09 02:51:50
【问题描述】:
虽然我不确定。 update_batch 是否可以在不替换先前数据的情况下,下一个更新值将用逗号分隔为 SAME FILED 上的数组形式。我展示了 2 个演示图像以便更好地理解。我的代码已经在运行,仅用于批量更新,但不适用于 update_batch 增量值,无需替换以前的数据!
例如—— 第一次更新时,“t_franchise_price”栏的栏位会这样显示 ---
第二次执行下一次更新时,列字段“t_franchise_price”将如下所示 ---
我的控制者是
public function batch_update() {
$sID = $this - > input - > post('test_id[]');
$sAmt = $this - > input - > post('test_priceUpdt[]');
$sOfficeId = $this - > input - > post('fran_office_id');
date_default_timezone_set('Asia/Kolkata');
$edited_test = array();
if (!empty($sID)) {
foreach($sID as $k => $v) {
$edited_test = array(
'test_id' => $sID[$k],
'test_priceUpdt' => $sAmt[$k],
'fran_office_id' => $sOfficeId,
'last_edit_date' => date('Y-m-d H:i:s', time())
);
$edited_test = json_encode($edited_test);
$postData[] = array('test_id' => $v, 't_franchise_price' => $edited_test);
}
$data['franchise_tst_pkg'] = (object) $postData;
}
#-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - #
if ($this - > form_validation - > run() === true) {
$this - > franchise_price_model - > batchTestupdate($postData);
$this - > session - > set_flashdata('message', display('save_successfully'));
redirect('branch/franchise_price/create');
}
**我的模特是**
public function batchTestupdate($data = [])
{
$this->db
->update_batch($this->table_test, $data , 'test_id');
}
查看
<tr>
<td>
<input type="text" name="test_name[]" class="form-control" placeholder="" value="<?php echo $subject->test_name; ?>" disabled>
<input type="hidden" name="test_id[]" class="form-control" placeholder="" value="<?php echo $subject->test_id; ?>">
</td>
<td>
<input type="text" name="test_price[]" class="form-control" placeholder="" value="<?php echo $subject->test_price; ?>" disabled>
</td>
<td>
<input type="text" name="test_priceUpdt[]" class="form-control" placeholder="" value="<?php echo $subject->test_price; ?>" id="test_priceEdt">
</td>
</tr>
【问题讨论】:
-
你试过自己调试吗?找出
$data包含在函数batchTestupdate(...)和var_dump($data); exit();中的内容。然后回溯,你应该能够弄清楚。我认为表单中的数组输入是导致 JSON 正在扩展而不是完全更新的问题的根源 -
先生,在第一次更新时,我得到了所有行的值作为 id 明智的,正如预期的那样。但我的查询是,下次我更新同一个字段时,以前存储的数据将替换为新的条目数据。我不想删除或替换,想用 update_batch 保留以前和最近更新的数据。它显示在 2 个演示图像中。
-
@KarloKokkak 当然,先生。谢谢。
标签: mysql codeigniter sql-update batch-updates updatebatchsize