Php 编码点火器更新记录

Php 编码点火器更新记录,php,codeigniter,Php,Codeigniter,我有一个像这样的更新记录 $data_gallery = array( 'order' => $value ); $this->db->where('order', $newOrder); $this->db->update('gallery', $data_gallery); 我说过,5张图片我已经重新排序。我有他们的旧职位和新职位 但当我循环时,它们有时会相互覆盖 例如: 5张图片1,2,3,4,5 我改变顺序2,1,3,4,5 我在循环中更新,因为它通过了

我有一个像这样的更新记录

$data_gallery = array(
'order' => $value
);

$this->db->where('order', $newOrder);
$this->db->update('gallery', $data_gallery);
我说过,5张图片我已经重新排序。我有他们的旧职位和新职位

但当我循环时,它们有时会相互覆盖

例如:

5张图片1,2,3,4,5

我改变顺序2,1,3,4,5

我在循环中更新,因为它通过了新订单的数组

Update order = 2 where order = 1
Update order = 1 where order = 2
显然,第二个不会被击中,因为order=2不再存在

我想这更像是一个逻辑问题

你知道我如何在不丢失一些数据的情况下轻松地循环和更新吗?我想可能在批处理操作中进行更新,但没有取得很大进展


提前感谢。

在WHERE子句中使用图像的ID:

$this->db->where('imageid', $imageid);

这将为每个图像设置新的顺序,而不会覆盖(或消失!)任何信息。

检查是否有任何其他字段需要检查与准确记录匹配的条件

$data_gallery = array(
   'order' => $value
);

$this->db->where('order', $newOrder);
//check if you have any other fields to match also image id, record id or any other ids to match
$this->db->where('second_id',$second_id);
$this->db->update('gallery', $data_gallery);

为什么要在哪里更新订单?也许使用唱片id更好,相反?今天晚上我用一双新的眼睛来看了一遍之后,我也想到了同样的事情。现在工作是一种享受。