Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP定制订单_Php_Mysql - Fatal编程技术网

PHP定制订单

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

我正在写一个博客,我需要订购/分类方面的帮助。我有一个字段叫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 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的顺序,其余的项目应该正确更新。确切的操作是什么?更新订单?排序?从所有记录更新订单。