2011-06-12 60 views
0

我遇到了編碼我的下一個功能的問題。我希望用戶能夠重新排列記錄並更改display_order的值。我使用JQuery UI的可拖拽和拖拽來促進這一點。從前端更改記錄的順序

我可以看到display_order值的簡單交換是如何工作的。但是我想爲記錄設置一個顯示順序,理想的情況是讓其他人隨機播放,因此沒有重複的display_order值。除了讓我不知道該怎麼做,看起來好像很難編碼和效率低下,在列表中改變每個值。

因此,我接受其他有關這種事情是如何正常或應該完成的建議。

我雖然也許使用像3.000這樣的值來表示順序,然後當我想創建一個記錄取其位置,使其值爲3 - 0.001,所以它的2.999,將排序在2和3之間。但我可以看到這個想法有很多錯誤,似乎並不是一條好路徑。

感謝您的任何意見!

回答

0
  • 一個排序列添加到您的表,smallintmediumintint取決於總條目
  • 新條目,並在末尾的 預期數量,max(sorting) + 1
  • 重新排序的項目時,獲得它將要進入的新位置並相應地更改較高的分類條目:

    mysql_query('UPDATE yourTable set sorting = '.$yourNewposition.' where id='.$yourUniqueId .' LIMIT 1');

    mysql_query('UPDATE yourTable set sorting = sorting + 1 where sorting >= '.$yourNewposition.' AND id != '.$yourUniqueId);

+0

太棒了!謝謝你,這是我的部分,我不能工作'設置排序=排序+ 1其中排序> ='。$ yourNewposition.'' 我想我將不得不改變列表中每個項目的排序值。而且由於名單是動態的,我不知道我需要做多少次。 – 2011-06-12 09:51:48

+0

很高興我能幫到你。 – konsolenfreddy 2011-06-12 09:54:58