0

我在 mysql 表中有可变数量的行。我想更改它们出现的顺序,无论任何重要列的内容如何,​​最好的方法是什么?

例如,如果我有:

id , content, order-by
1  , d      , 1
2  , a      , 2
3  , v      , 3
4  , i      , 4
5  , d      , 5

并希望将字段重新排序为:

id , content, order-by
3  , v      , 1
4  , i      , 2
5  , d      , 3
2  , a      , 4
1  , d      , 5

按 id 排序的看起来像:

id , content, order-by
1  , d      , 3
2  , a      , 4
3  , v      , 1
4  , i      , 2
5  , d      , 5

复杂之处在于我必须手动或以编程方式更新受顺序、删除或添加更改影响的其他行。是不是有人已经做了一些内置功能或脚本来节省一些时间?

提前感谢您的宝贵时间。

4

1 回答 1

1

每当您的程序更改订单时,您都必须使用正确的 order_by 值更新 order_by 列。我曾在一个程序集上工作过,其中可以通过拖放更改页面顺序。这些位置将保存在 JS 变量中,直到保存为止。提交后,修改后的订单将在表格中更新。

当您访问表格时,您必须执行以下操作:

 SELECT * from table order by order_by;

这一切都取决于您的桌子的大小,以及您试图通过订单实现的目标。

正如@Matt Gibson 在评论中提到的那样,如果您尝试实现列表的拖放排序,您可以使用jQuery UI Sortable。你可以实现类似 -

 var result = $('#sortable').sortable('toArray');
 $.post(
        url,
        "order="+result
 );

接收 PHP url 中的位置值,并对其进行处理。

于 2012-10-11T05:58:40.480 回答