2013-10-14 100 views
0

我正試圖通過輸入訂單的大小創建一個檢查,以顯示您獲得多少折扣。尋找折扣

這是我的結構:

1-11 pcs | 50% discount | 21,69 euro/piece 
12-23 pcs | 52,5% discount | 20,61 euro/piece 

等,直到600個...

什麼是最好的解決方案?獲取數組中的所有內容並檢查它?或者,我只是需要使用if語句,如:

if($pieces > 0 && $pieces < 12) { 

if($pieces > 11 && $pieces < 24) { 

請讓我知道你們的想法。

+3

可能最好將每個不同的範圍存儲在表中,並根據客戶在購物車中的數量來查詢表。 - 'select * from product_qty_discount其中ProductID = 1且(qty> 0且qty <= 12)' – Gavin

回答

3

您可以嘗試存儲配置的陣列/ db表的這樣一種形式:

lo_limit | hi_limit | discount 

然後檢查其內部循環,找到當前的折扣,一定量的件:

foreach($rules as $rule) { 
    if($pieces > $rule['lo_limit'] && $pieces < $rule['hi_limit']) { 
     $discount = $rule['discount']; 

     break; 
    } 
} 
0

如果使用固定的值(如你提供一個)

$ordered = 15; 
$discount = round(($ordered/12), 0, PHP_ROUND_HALF_DOWN); 
$discount = 50 + ($discount * 2.5); 

使用別的Baldrs解決方案