更改购物车中的默认货币

时间:2012-08-05 04:47:36

标签: php mysql shopping-cart

如果这个问题看似可能重复,我很抱歉。请把我链接到原文。

我正在使用php和mysql开发购物车。

在管理面板中,可以设置多种货币类型,并可以添加新的货币类型。它将具有默认货币和转换率。 我的问题是在更改默认货币类型时。

这就是我的表格的样子

**Currency**
------------------------------------------------------------------------------
ID    CurrencyType        ConversionRate           IsDefault
------------------------------------------------------------------------------
1       type1                 -                      y
2       type2                 2.0                    n
3       type3                 3.0                    n
------------------------------------------------------------------------------

**Product**
------------------------------------------------------------------------------
ID     Rate        
------------------------------------------------------------------------------
1      100
2      200      
------------------------------------------------------------------------------

此处产品1的价格为

(100) for currency type1
(100 * 2.0) for currency type2
(100 * 3.0) for currency type3

在管理面板中,将根据默认货币类型添加转化率。

在此更改默认类型时,我可以更新货币表中的转换率。 但我不得不更新产品表中的费率。更改产品表中所有产品的费率,让我觉得我错了。

还有其他更好的方法吗?请建议。

2 个答案:

答案 0 :(得分:1)

既然我理解了你的问题,我相对肯定你必须更新两个表。如果您只是想以不同的转化率向用户显示该表但保持基础费用相同,那么您始终可以将该值存储在CurrencyType type1中,但将其转换为{{1}在向用户显示时,在php中使用type2。但是,如果您希望在更新默认type3时更新Product表中的实际值,而不仅仅是它们向用户显示的方式,那么您将必须更新两个表

幸运的是,SQL使这很容易,因为你所做的只是将当前的Rate值乘以你将其更改为的ConversionRate。因此,如果你有一个php变量存储新CurrencyType的{​​{1}},那么你可以将它设为默认值:

ConversionRate

应使用新的CurrencyType费率更新Product表格中的所有行。让我知道这是否令人困惑,或者你想要更多澄清。

答案 1 :(得分:0)

我找到了一个解决方案,我不需要更新产品表..我将有一个HIDDEN货币类型,这将是计算的默认值。产品表中的费率将始终为* 1货币类型

可以在管理面板中进行必要的计算,以便管理员仍然可以使用其默认货币类型输入新产品的费率。