更改前端记录的顺序


Changing order of records from the front end

我在编写下一个功能时遇到了一个问题。我希望用户能够重新排列记录并更改display_order值。我使用Jquery UI的可拖动和可丢弃功能来实现这一点。

我可以看到display_order值的简单交换是如何工作的。但我想为一个记录设置一个显示顺序,理想情况下让其他记录随机排列,这样就不会有重复的显示顺序值。除了不知道该怎么做之外,它似乎很难编码,效率也很低,会打乱列表中的每个值。

因此,我愿意接受其他关于这类事情正常情况下或应该如何做的建议。

我想可能会用3.000这样的值来表示顺序,然后当我想让一个记录代替它时,让它的值为3-0001,所以它是2.999,并且会在2和3之间排序。但我看到这个想法有很多错误,似乎不是一条好的道路。

感谢您的意见!

  • 在表中添加一个排序列smallint,CCD_ 2或CCD_预期的条目总数
  • 一个新条目被附加到末尾,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 );