2013-07-16 38 views
0

這個概念看起來很簡單,但我遇到了麻煩。我有一個PHP表單,用戶輸入數字,jQuery根據輸入的數字和數據庫中的數字執行實時計算,然後用戶可以決定提交表單 - 之後,他們的輸入被髮送到數據庫(即像交易)。提交的數字會附加到現有的數字上,這會影響下次的實時計算。根據用戶輸入向MySql添加或減去

問題是每次用戶點擊「更新」,即使他們的輸入沒有改變,SQL查詢也會追加數字。此外,我似乎無法弄清楚如何使它增加或減少。我希望它根據輸入添加或減少或什麼也不做。

例如:

該數據庫目前包括100,100,和100中的表的行。 在表格中有3個數字框和用戶輸入3,5和7. 用戶點擊提交,現在數據庫包含103,105和107. 如果他們再次提交,數據庫將包含106, 110和114(基本上是一個乘數效應)。我不希望發生這種情況。我該如何編寫一個查詢,以便數據庫相對於輸入更改的數量發生變化?如果用戶將輸入更改爲2,4和6,數據庫現在將讀取102,104和106?

該代碼太長,不能在這裏發佈,所以我基本上只是想要點子。謝謝!

編輯:也許一個想法是每次生成一行100,100,100?使用自動增量,所以每次提交表單時,最新的行都會反映當前的輸入?

+0

你想做什麼?如果您的計算是在前端處理的,爲什麼您需要在後端重新計算? – user20232359723568423357842364

+0

計算使用來自後端的數據,後者由前端的用戶輸入更新......如果這有意義的話?當用戶鍵入輸入時,它不會更改後端數據,直到他們點擊提交...但他們可以實時查看「假設」結果。我的問題是在它們碰到提交併且後端數據發生變化之後,保留的輸入不僅會影響實時計算(同樣也會檢索後端數據),還會影響後端 - 因爲每次更新時都會添加它們。 –

回答

0

我不知道你是否有單一或多用戶系統。我想這是多用戶,因爲你有這些問題。
防止這種情況的最簡單方法是明確識別用戶和他輸入的值。然後不要更改數據庫中的基本值,但保存每個用戶提交的值。
您應該爲用戶值創建一個表並每次更新它們。
只需進行查詢,將每個用戶值添加到您的基本值。完成。
您也可以將初始值存儲在數據庫中。但是你也可以硬編碼它們,這取決於你打算做什麼。

+0

是的,它是多用戶。我儘可能爲每個用戶的最新值製作一張表格,但隨後我對累積輸入值的數據檢索進行了混淆。我可能只需要做一些額外的計劃。感謝您的意見。 –