由於您沒有提供代碼或數據庫結構,因此我會嘗試解釋一個基本的訂購系統,我希望您瞭解如何解決你的問題。
想象這些都是你的數據在你的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