2017-02-21 29 views
0

我想在我的網站上列出數據庫結果列表。將返回的最大結果數爲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'"); 

回答

2

使用行號代替列數,這樣你就不會需要管理的數字

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