【发布时间】:2015-03-18 18:40:20
【问题描述】:
我正在为一个拥有大量图片库的网站制作一个管理系统。该界面将允许用户在每个图库中添加、删除或重新排序图像。
我有一个包含所有画廊中所有图像的表格,“id”自动递增,并且 sort_order 的默认设置为 0。
+----+-----------+------------+------------+
| id |gallery_id | sort_order |
+----+-----------+------------+------------+
| 1 | 1 | 1 |
| 2 | 1 | 0 |
| 3 | 1 | 2 |
| 4 | 1 | 3 |
| 5 | 1 | 4 |
| 6 | 1 | 5 |
| 7 | 1 | 6 |
| 8 | 2 | 0 |
| 9 | 2 | 1 |
| 10 | 2 | 2 |
| 11 | 2 | 3 |
| 12 | 2 | 4 |
| 13 | 2 | 5 |
| 14 | 2 | 6 |
+----+-----------+------------+------------+
这是重新排序查询,通过 ajax 使用序列化数组:
if($_POST['item']) {
$order = 0;
foreach ($_POST['item'] as $id) {
$rearrange = $db->query
("UPDATE images SET sort_order = '".$order."' WHERE id = '".$id."'");
$order++;
它根据传入的数组的长度来限制sort_order,然后默认为0代表下一个组。我可以重新排序、添加、删除,并且它始终限制对我正在编辑的 gallery_id 组的更改。
(作为一个实验,我在所有画廊中按升序插入了 sort_order 值,如下所示:
+----+-----------+------------+------------+
| id |gallery_id | sort_order |
+----+-----------+------------+------------+
| 1 | 1 | 0 |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 1 | 4 |
| 5 | 1 | 5 |
| 6 | 1 | 6 |
| 7 | 1 | 7 |
| 8 | 2 | 8 |
| 9 | 2 | 9 |
| 10 | 2 | 10 |
| 11 | 2 | 11 |
| 12 | 2 | 12 |
| 13 | 2 | 13 |
| 14 | 2 | 14 |
+----+-----------+------------+------------+
当我使用我的界面对行重新排序时,它限制了 gallery_id 组中的 sort_order,完全如第一个表所示)。
我正在寻找这种方法的注意事项。有人这样做过吗?
【问题讨论】: