【发布时间】:2013-05-05 18:21:27
【问题描述】:
我找了又找,但找不到我要的东西,这可能是超级简单的。
我有一个表格,其中有一个要按选择顺序显示的优先级字段。我希望能够做什么我已经看到但不知道如何让我的代码做到这一点。
获取优先级为 1、2、3、4、5、6 的数据,并将 #5 更改为 4,并相应地调整所有其他数字。 所以现在它将是 1,2,3,4(旧 5),5(旧 4),6。
我正在使用 PHP、Mysql,但由于某种原因我没有得到这个概念。我可以增加/减少数字,但我不能调整它周围的其他数字。所以我最终得到 1,2,3,4,4,6
表结构 ID、猫、标题、优先级 我只想增加/减少猫。我正在考虑一次排序多个,所以它可能是 1(旧 5)、2(旧 3)、3(旧 6)...等
感谢您的帮助。
编辑
也许我的第一个解释解释得不够好。 假设我有 10 张图片,每张图片都有一个唯一的 ID,并且它们现在的优先级与 ID 相同。我可以显示图像 ORDER BY priority ID 1,2,3,4,5,6,7,8,,9,10 优先级 1,2,3,4,5,6,7,8,9,10
但在查看图片后,我想更改它们显示的优先级。 所以...我单击一个箭头,该箭头具有一个链接,该链接告诉数据库将优先级为 4 的图片 ID 4 更新为 ID 4 优先级 2,因为它更重要。
现在我的数据库看起来像这样。 ID 1,2,3,4,5,6,7,8,9,10 优先级 1、2、2、3、5、6、7、8、9、10,因为其余的优先级数字没有改变,因为我不知道如何使它工作。
我想要做的是,在我将一个优先级更改为新的优先级后,重新排列数字,以便它们在该数字之后按数字顺序排列,因为它们不太重要。我该怎么做?
【问题讨论】:
-
那你的代码在哪里? (您已经尝试过)
-
$result = mysqli_query($conn,"UPDATE photo_ptitle SET priority = '$newpriority' WHERE id = '$id'") 或死(mysqli_error($conn));这只会更新现有的 id,而不是其他的 .. 这是我绊倒和失败的地方,无法弄清楚。
-
跳过查询的 WHERE 部分?
-
如果我跳过 where 然后它会以新的优先级更新数据库中的所有记录。我想用新的优先级更新单个记录,然后更新更新记录两侧的其他记录。
-
您要更新哪些记录?与 $newpriority 不具有相同价值的那些?