PHP定制订单
我正在写一个博客,我需要订购/分类方面的帮助。我有一个字段叫order。下面显示了数据库的结构:PHP定制订单,php,mysql,Php,Mysql,我正在写一个博客,我需要订购/分类方面的帮助。我有一个字段叫order。下面显示了数据库的结构: id | name | order ------------------------- 1 | post one | 5 2 | post two | 4 3 | post three | 3 4 | post four | 2 5 | post five | 1 我可以使用SQL ORDER BY子句根据字段“ORDER”进行排序。我真正想做的是,当我将post
id | name | order
-------------------------
1 | post one | 5
2 | post two | 4
3 | post three | 3
4 | post four | 2
5 | post five | 1
我可以使用SQL ORDER BY子句根据字段“ORDER”进行排序。我真正想做的是,当我将post 2的顺序更改为4时,是否有一种机制可以自动对其余行进行排序。我假设数据库中的
order
字段中的order BY
既然我更好地理解了你的问题,那么这样做如何:将你的
订单
字段以十为单位编号(10
,20
,30
等等)。然后,当您想要更改顺序时,调整数字(例如,将10
更改为25
,将其置于20
和30
之间)。完成重新排序后,运行以下命令:
SET @order = 0;
UPDATE `posts` SET `order` = (@order := @order+10) ORDER BY `order` ASC
我认为OP需要更大的灵活性,比如一个名为“显示顺序”的附加列“我在数据库中有一个名为“顺序”的字段”-我认为这意味着他们只需要按该字段对结果进行排序。@Kolink:我想问题在于,如果他想更改顺序,他将如何改变整个数据库?我同意你的看法,现在还不清楚。我在想,他有一个“固定”的顺序(不会改变),这是一种“基线”和一个“灵活”的顺序,可以改变。我的问题更多的是更新这个领域。我的意思是,如果我更改post#1的顺序,其余的项目应该正确更新。确切的操作是什么?更新订单?排序?从所有记录更新订单。