我想在我的网站上列出数据库结果。将返回的最大结果数为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'");
答案 0 :(得分:2)
使用行号而不是列号,因此您无需管理数字
SELECT
@i:=@i+1 AS iterator,
t.*
FROM
tablename AS t,
(SELECT @i:=0) AS foo