2011-12-31 51 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