2014-05-13 76 views
0

我不確定標題是否100%準確,但這是我的問題。用js和php更改數據庫中數據的順序

我有一個網站,其中n個用戶可以上傳圖片,我想讓用戶可以訂購他上傳的圖片,並按照該順序保存,然後按照正確的順序預覽。

排序可以與上載同時進行,也可以稍後進行。 我正在使用plupload。我的想法是將數據庫中每個圖像的來源與另外一列代表訂單號並在獲取圖像時使用ORDER BY

但是對於每個新圖像,我都必須檢查我已擁有的圖像數量,而且許多SQL請求的速度太慢。隨着新圖像的添加和重新排列它們,會有很多UPDATE聲明也會降低數據庫的速度。 這意味着我還必須檢查每個圖像的舊位置和新位置,並在必要時更改它,這意味着更多的SQL語句。

所有這些似乎並不是一個好的方法,所以我想知道如果我能得到一些不同的方法或優化的指針。但如果可能的話,我想保留plupload。

+0

你的問題似乎來自**來了很多UPDATE語句,也減慢了數據庫。**。你確定這是事實嗎?與實際上傳相比,上傳文件時的簡單更新應該是可以忽略的。不要擔心,只需更新即可。 – Nanne

回答

0

通常情況下,ORDER BY $order就足夠使用像0,1,2,3這樣的值,默認值爲0,最低值在前。

如果您真的不想對自己的數據庫進行任何更改,則可以考慮編寫代碼,以便在客戶端使用本地存儲。 但是這會導致當用戶從另一臺計算機訪問時,該數據將不可用。

所以,無論選擇何種方式,仍然最好是使用自己的數據庫。 當您的代碼寫得很好時,運行這些查詢應該沒有任何問題。

+0

我會用我自己的數據庫,但我不是很喜歡使用那麼多的語句,順序會像你傷心0,1,2等 但我會期待100多張照片,並擁有所有這一切, t看起來相當不錯。 –

+0

它需要調用db來查找圖像....對吧?所以最後它只是通過額外的字段來填充它們,沒有額外的查詢需要......所有這些都在一個查詢中完成。將示例訂單號3更新爲訂單號11和11到3 ...是你的分貝花生。 – HenryW

+0

除非......並且我認爲這就是你想到的......就是它隨着每個訂單的更改......修復所有其他值......是的,那麼它可能會造成超載......但爲什麼你應該那樣做? – HenryW