ドロップダウン ボックス (PHP 変数 $position に名前が割り当てられている) を送信して、1 つのアイテムの位置を更新するときに、位置に基づいてリストを並べ替えようとしています。以下に例を示します。位置はリスト内の順序で表されます。
- アイテム1
- アイテム2
- アイテム3
- アイテム4
- アイテム5
次の MySQL クエリを使用しています。
UPDATE subjects SET
position = position + 1
WHERE position <= position AND position >= {$position};
Item5 を位置 2 に移動した場合、このクエリは位置 2 から 4 までのすべてを 1 つ下に移動し、結果は次のようになります。
- アイテム1
- Item5 <<< 上に移動
- アイテム2
- アイテム3
- アイテム4
ただし、逆にアイテムを下に移動したい場合は、位置を 1 つ減らす必要があり (位置 = 位置 - 1)、<= と >= 記号が入れ替わります。したがって、ケース引数でこれを行う方法を考えています (if{} else if{} と同等)。