【发布时间】:2014-02-18 18:36:14
【问题描述】:
我在更新数据库时遇到问题。我试图用图片制作一个排序系统,但它不起作用。我正在使用 Jquery 的可排序功能。这样我就可以从当前排序中取回我的数组(保存时)。
如果我将图像从位置 1 移动到位置 2,一切正常。所以 oldSortNumber 是 1,新的是 2 (1 + 1)。这是我的代码:
public function updateOrder ($newSortArray) {
for($i = 0; $i <= 5; $i++)
{
$oldSortNumber = substr($newSortArray['img'][$i], strpos($newSortArray['img'][$i], ".") + 1);
$newSortNumber = $i + 1;
$this->db->where('sortID', $oldSortNumber);
$this->db->update('user_image', array('sortID' => $newSortNumber));
}
}
当我将图像放回原处时(从 2 到 1,或类似的东西),我的功能将不起作用。所以它不会更新到我的新职位。 1 而不是 2。
所以在我的数据库中,我有一张带有 sortOrder 2 的图片。如果我将它放在第三位。一切正常。但是当我将它定位到第一位时,它不会更新到数据库中。输入很好,我不知道出了什么问题。有人可以帮帮我吗?
【问题讨论】:
-
您在哪里定义
$oldSortNumber。我认为应该是$i -
你的循环不正确,它应该是
for($i = 5; $i > 0; $i--),因为你的更新从 1 开始,当你的 $i 为 2 时,它变成了 2,你有两行 2 -
呃,我更新了我的代码。我从 Jquery UI 的“可序列化”功能中得到了我的旧号码。这样一来,我的 6 个位置连续排列。所以我检查了 1 到 6 中的新数字。
标签: php codeigniter activerecord for-loop jquery-ui-sortable