2014-04-27 41 views
0

我嘗試將產品添加到購物車,但我有一些循環邏輯問題。 此功能應該添加新產品並檢查產品ID是否已經在購物車中。如果它在購物車中,它應該將現有產品或用戶選擇的數量加1。 下面是一些代碼,我有:添加到購物車功能創建錯誤的陣列

function AddToCart($pid, $q) 
{ 
$quantity = $q; 
$product_id = $pid; 
if (is_array($_SESSION['products'])) 
    { 
    foreach($_SESSION['products'] as $key => $my_value) 
     { 
     if ($pid === $my_value['product_id']) 
      { 
      if ($quantity != 1) 
       { 
       $quantity = $my_value['quantity'] + $quantity; 
       $_SESSION['products'][$key]['quantity'] = $quantity; 
       } 
       else 
       { 
       $quantity = $my_value['quantity'] + 1; 
       $_SESSION['products'][$key]['quantity'] = $quantity; 
       } 
      } 
      else 
      { 
      $_SESSION['products'][] = array(
       'product_id' => $product_id, 
       'quantity' => $quantity, 
      ); 
      } 
     } 
    } 
    else 
    { 
    $_SESSION['products'][] = array(
     'product_id' => $product_id, 
     'quantity' => $quantity, 
    ); 
    } 
} 

的$ _SESSION中的var_dump會有如下:

array(8) { 
    [0]=> array(2) { ["product_id"]=> int(4) ["quantity"]=> int(1) } 
    [1]=> array(2) { ["product_id"]=> int(10) ["quantity"]=> int(1) } 
    [2]=> array(2) { ["product_id"]=> int(11) ["quantity"]=> int(2) } 
    [3]=> array(2) { ["product_id"]=> int(11) ["quantity"]=> int(3) } 
    [4]=> array(2) { ["product_id"]=> int(12) ["quantity"]=> int(2) } 
    [5]=> array(2) { ["product_id"]=> int(12) ["quantity"]=> int(3) } 
    [6]=> array(2) { ["product_id"]=> int(12) ["quantity"]=> int(4) } 
    [7]=> array(2) { ["product_id"]=> int(12) ["quantity"]=> int(5) } } 

雖然我只添加4個產品:ID 4,10,11和12

回答

0
function AddToCart($pid, $q){ 
    if(!is_array($_SESSION['products'])){ 
     $_SESSION['products'] = array(); 
    } 
    foreach($_SESSION['products'] as $key=>$my_value){ 
     if($pid === $my_value['product_id']){ 
      $_SESSION['products'][$key]['quantity'] += $q; 
      return true; 
     } 
    } 
    $_SESSION['products'][] = array('product_id' => $pid, 
            'quantity' => $q); 
    return true; 
} 
+0

應該工作,但以後我添加3新產品的條件,如果($ PID === $ MY_VALUE [ '的product_id']){ $ _SESSION [ '產品'] [$關鍵] [ '量'] + = $ q; ('product'] [] = array('product_id'=> $ pid, 'quantity'=> $ q); }我得到了相同的結果 –

+0

哎呀抱歉,代碼是完全錯誤的。如果您仍然需要它,請嘗試新版本。 – stomo21

+0

非常感謝!:)我已經改變了一點代碼,所以它現在工作正常:) –

相關問題