2011-12-31 36 views
-2

我有一個抓取用戶輸入數據並將其發佈到MySQL數據庫的PHP表單。我想知道,我可以如何將兩個字段之間的數學差異發佈到數據庫中的第三個字段?基本的PHP/MySQL數學示例

例如,我想減去「travel_costs」從「show_1_price」和寫入差分到「TOTAL_COST」變量。什麼是最好的方法來做到這一點?非常感謝。

+0

變量的數據類型是什麼? int還是小數?你有沒有嘗試過任何東西? – Robert 2011-12-31 02:13:28

+0

INT。是的,我嘗試了一些類似「$ total_cost = $ show_1_price - $ travel_costs;」的內容在我的insert.php文件中,但我不能讓它工作 – ISOcrates 2011-12-31 02:28:56

回答

0

您最近可以處理選擇查詢:SELECT show_1_price - travel_costs AS pricediff FROM my_table;然後在PHP搶值,然後再次執行插入查詢...

+0

爲什麼你會在這種情況下插入行時做SELECT? – 2011-12-31 02:21:56

+0

種類的noobish解決方案)) – 2011-12-31 09:49:53

0

應該是簡單的對事物的PHP端做的怎麼樣

query=sprintf("INSERT INTO table VALUES(%d, %d, %d)", travel_costs, 
show_1_price, show_1_price - travel_cost); 

但是總的來說它是壞的形式存儲在一個值一個可以從其他值計算的數據庫。原因是你永遠不會再次訪問這個值,但你正在使用它的存儲。今天的CPU週期要豐富得多,所以在需要時計算這個值。然而,這不是一條金科玉律 - 有時可以更有效地存儲計算值 - 雖然通常情況並非如此。

+1

謝謝我會試試這個。那麼你是說最好是用某種公式動態計算字段,而不是將實際值寫入數據庫?抱歉,試圖理解 – ISOcrates 2011-12-31 02:37:17

+1

@ISOcrates Exactly - 因爲可以從現有列計算該值,因此您可以在需要時計算該值。例如SELECT travel_costs,show_1_price,show_1_price - travel_cost AS total_cost FROM my_table; – 2011-12-31 02:42:30

+0

下面是我正在使用的一個粘貼:http://pastie.org/3099546。我可以在insert.php中添加什麼,以便將輸入數據在「show_1_price」和「travel_costs」中的差異發佈到數據庫中的「total_costs」字段中?我知道這不是最有效的做事方式,但它可以滿足我當前的需求。 – ISOcrates 2011-12-31 03:21:32