テーブルの列 "sort"を使用してアルバムに写真を配置します。 これはアルバムが "ORDER BY sort"で表示されることを意味します。"sort"列を使用してMySQLテーブルの行を整列する
私は、アルバムに写真をドラッグ&ドロップしたり、JavaScriptで保存してから「保存」ボタンを押すことで、写真を並べ替えることができます。
(ソートされた写真IDを持つ)配列が(PHPの)プロセスに送信され、テーブルの行を再ソートするとします。
行うには、私の心の中で最も簡単な方法は次のとおりです。
for ($c=0; $c<$length; $c++) {
mysql_query('UPDATE photos SET sort="'.$c.'" WHERE id="'.$array[$c].'"');
}
(ここでは消毒、重複およびその他の検証を無視してください)
しかし、私は中に作られたクエリの量が心配ですこのようなサイクル。
このアプローチをどのように改善しますか?
ありがとうございます。私のコメントに
私にはうまく見えます。 1つの大きなアップデートでそれをマージし、あなたの入力をサニタイズして、SQLインジェクションに脆弱ではないようにすることができます。 @ Zombayaおかげさまで – Zombaya
私が質問したように、衛生措置やその他の検証は無視してください。しかし、私は1つの大きなアップデートでどのようにマージしますか?それが私が望んだことです、btw。問題は "WHERE"節にあります。 – Nuno
私は間違っている、あなたはそれを行うことはできません。あなたは挿入文でそれを行うことができます、私はそれらを切り替えました。私はおそらくあなたを助けることができる[ブログ](http://www.kavoir.com/2009/05/mysql-update-multiple-rows-with-one-single-query.html)を見つけました。 – Zombaya