我正在创建一些软件,其中人们有生日列表,他们可以将项目放在他们的列表中,并且可以被其他人查看。我的数据库中有一个表,其中所有内容都被组织为birthday lists
。它的安排如下:
示例行将是:
人员字段是拥有该项目的人员,并且每个人的所有项目都在同一个表格中。 id,名称,链接和描述都非常自我解释。数字字段是您查看列表页面时的显示方式,因此数字10将显示在0以上,优先级与此问题无关。这是我在浏览器中查看Jimmy列表时会发生什么的示例。 (别担心,我最终会到达我的观点)
我添加了很多图片,因为我从来没有任何意义,这是我解释事情的最佳方式:)
无论如何,这是另一张显示示例数据库的图片。
如果我在浏览器中查看了Russell的列表,它将如下所示:
注意$$$$项目如何位于订书机上方,因为它的编号更高。这就是它的用途。如果我以Russell的身份登录查看此列表,我会看到按钮Move Up
和Move Down
增加和减少该项目的数字属性。我将用示例场景演示我的问题。
让我们说Jimmy登录,他有很多列表项。他移动了几次,所以它得到一个项目的数值远高于其他项目的数值。然后他移动另一个项目,重新加载页面,并认为它没有做任何事情,因为第二个项目的数字值仍然小于第一个项目的数字值。我希望这是有道理的。另一个问题是,如果两个项目的数值相同,那么这是一个很大的问题。关键是,我拥有它的方式无法发挥作用。
有没有人知道我可以让这个号码正常工作的方式,并告诉我如何才能让它能让用户在列表中上下移动项目? (另外,如果我的数据库组织严重,我也很想知道:))
提前致谢!
结束信息,以备不时之需:
答案 0 :(得分:1)
当您将项目向上或向下移动一个'move'时,将要移动的项目的'number'值与其跳过的项目的'number'值进行交换。
答案 1 :(得分:0)
我会这样处理:
对于移动/排序项目,您可以使用jQuery UI sortable作为示例。
您可以通过method serialize()获取订单。
将序列化数据发送到PHP脚本并交换/更新已更改的位置(表中的number
)
更新数据库中的数据集。
要SELECT
您的已排序数据使用ORDER BY number DESC
(more)