我遇到了对数据库更新的问题。我试图用图片制作一个排序系统,但它不起作用。我正在使用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的图片。如果我把它放在第三位。一切正常。但是当我将它定位到第一位时,它将不会更新到数据库。输入很好,我不知道什么是错的。有人可以帮帮我吗?
答案 0 :(得分:1)
它不会像这样工作,因为你的位置和更新数据在同一列中。你必须使用user_image
表的ID,where条件中的主键,并将查询值旧的排序顺序设置为表id
public function updateOrder ($newSortArray) {
for($i = 1; $i <= 6; $i++)
{
$ID = substr($newSortArray['img'][$i], strpos($newSortArray['img'][$i], ".") + 1);
$this->db->where('YOUR_TABLE_ID', $ID );
$this->db->update('user_image', array('sortID' => $i ));
}
}