设置数据库行顺序

时间:2017-02-21 00:22:42

标签: php mysql pdo

我想在我的网站上列出数据库结果。将返回的最大结果数为5,我希望用户能够选择显示它们的顺序。要做到这一点,我有一个"命令"我的数据库表中的列,允许将顺序设置为1,2,3,4或5.当检索列表时,首先显示1,等等。

好吧,我想要做的就是把它放在哪里,如果你删除了排序为" 3"的列,那么在4和5排序的两列将自动变为3和4。然后,当用户将新结果输入数据库时​​,它将检查其中有多少条目,然后知道它是否找到4,下一个需要按顺序排列为" 5"。或者如果它找到2个结果,则下一个需要按顺序排列为" 3"。

这最后一部分很容易,我可以做到这一点,我无法做的是将列调整到不跳过任何数字的位置。

现在,我使用典型的方式删除列...我可以添加一些可以解决我想要做的事情吗?

$sql = $this->dbh->prepare("DELETE FROM ". $this->config['db']['table4'] ." WHERE ". $this->config["db"]["columns"]["id"] ."= '$shift'");

1 个答案:

答案 0 :(得分:2)

使用行号而不是列号,因此您无需管理数字

SELECT 
    @i:=@i+1 AS iterator, 
    t.*
FROM 
    tablename AS t,
    (SELECT @i:=0) AS foo