2017-02-21 8 views
0

私のウェブサイトでデータベース結果のリストを作成したいと考えています。戻ってくる結果の最大数は5であり、ユーザーが表示される順序を選択できるようにしたい。これを行うには、データベーステーブルに「1,2,3,4,5」の順序で設定できる「注文」列があります。リストが取得されると1が最初に表示されます。データベースの行の順序を設定する

さて、私がしようとしているのは、 "3"として注文された列を削除すると、4と5で注文された2つの列が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 
関連する問題