我使用表中的「排序」列排列相冊上的照片。 這意味着專輯將以「ORDER BY排序」顯示。使用「排序」列排列MySQL表中的行
我有一個功能,允許用戶通過在javascript中拖放照片來安排相冊上的照片,然後按下「保存」按鈕。
一個數組(帶有排序的照片ID)被髮送到進程(在PHP中),然後我想重新排序表上的行。
在我的腦海裏做的最簡單的方法是:
for ($c=0; $c<$length; $c++) {
mysql_query('UPDATE photos SET sort="'.$c.'" WHERE id="'.$array[$c].'"');
}
(請忽略消毒,重複這裏其他覈實)
但我擔心的是在做查詢量像這樣的一個循環。
你會如何改進這種方法?
謝謝。
看起來很好。你可以嘗試在一個大的更新中合併它並消毒你的輸入,這樣你就不會受到sql注入的攻擊。 – Zombaya 2012-04-28 22:51:59
@Zombaya謝謝。正如我在問題中所說的,請忽略衛生處理和其他驗證。但是,我將如何將它合併成一個大的更新?這就是我想要的,順便說一句。問題出在「WHERE」條款中。 – Nuno 2012-04-28 22:54:12
我錯了,你不能那樣做。你可以使用插入語句來完成它,我切換了它們。我確實找到了一個[blog](http://www.kavoir.com/2009/05/mysql-update-multiple-rows-with-one-single-query.html),它可能會幫助你。 – Zombaya 2012-04-28 23:03:09