由于您没有提供代码或数据库结构,因此我会尝试解释一个基本的订购系统,我希望您了解如何解决你的问题。
想象这些都是你的数据在你的MySQL表:
id - parent - title - order
1 - 0 - abc - 1
2 - 0 - xyz - 2
3 - 1 - 123 - 1
4 - 1 - 456 - 3
5 - 1 - 789 - 2
如果你做这样的查询:
SELECT ... ORDER BY order, id ASC
你必须像这样的树:
- root (id:0)
|
|___ abc (id:1)
| |___ 123 (id:3)
| |___ 789 (id:5)
| |___ 456 (id:4)
|
|___ xyz (id:2)
如果您点击条目789
(id:5),给它一个比条目更高的顺序,您的SQL查询应该是这样的:
UPDATE table SET order = order + 1 WHERE order = order - 1 AND parent = 1
下一个查询:
UPDATE table SET order = order - 1 WHERE id = 5
你的树应该是这样的,那么:
- root (id:0)
|
|___ abc (id:1)
| |___ 789 (id:5)
| |___ 123 (id:3)
| |___ 456 (id:4)
|
|___ xyz (id:2)
如果你需要一个更灵活的方式,你也可以使用这样的事情:
(这里我假设你有100行ord ERED从1到100,你要移动ID:ID后33的地方:51)
UPDATE table SET order = order + 1 WHERE order >= 51
UPDATE table SET order = 51 WHERE id = 33
UPDATE table SET order = order - 1 WHERE order BETWEEN 33 AND 50
马赫迪嗨, 感谢您的答复,让我尝试一下,回复你.. – shijin
@shijin欢迎!如果它不适合你,那么提供更多细节也会更好...... :) – Mahdi