Codeigniter更新记录

时间:2013-07-10 22:40:40

标签: 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

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

Update order = 2 where order = 1
Update order = 1 where order = 2

显然第二个永远不会被命中,因为命令= 2不再退出。

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

任何想法如何在不丢失部分数据的情况下轻松循环和更新?我虽然可能在批处理操作中进行更新,但却没有达到目的。

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

这将为每个图像设置新订单,而不会覆盖(并消失!)任何信息。

答案 1 :(得分:1)

检查您是否有任何其他字段来检查您的条件是否与确切的记录相匹配。

$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);