2015-06-20 68 views
-1

我有此代碼可將產品保存到購物車中。 我需要保存產品和尺寸 - 數量x價格。 在這一塊是存儲產品名稱,大小,數量和價格,但它顯示相同的行。 如果我添加'product1'大小M的量化1,並且如果我添加'product1'的大小S量化1,在購物車中我得到'product1'的大小S(最後添加的大小)數量1(但在tquan中我得到2產品)。 那麼我怎樣才能讓每一個產品的尺寸都有另一排。購物車會話按大小節省產品

$_SESSION['CART']['order_token'] = $form_token; 
     $arrCart['id']    = $pID; 
     $arrCart['quantity'] = $_SESSION['CART']['PRODUCT'][$pID]['size']['quantity'] + $_POST['quantity']; 
     $chkQuan = mysqli_fetch_assoc(mysqli_query($link, "SELECT quantity FROM table WHERE id = '".$pID."'")); 

      $total =$_SESSION['CART']['tquan']+$_POST['quantity']; 
      $arrCart['pret']    = $_POST['product_price']; 
      $arrCart['size']    = $_POST['size']; 
      $_SESSION['CART']['tquan']  = $total; 
      $_SESSION['CART']['PRODUCT'][$pID] = $arrCart; 

這部分是用來顯示車

 if(isset($_SESSION['CART']) && $_SESSION['CART']!='') 
     { 

      $endsumm = ''; 
      $product_total_price = ''; 
      foreach($_SESSION['CART']['PRODUCT'] as $pID=>$pArr) 
      { 
       $prod = mysqli_fetch_assoc(mysqli_query($link, "SELECT * FROM table WHERE id='".$pID."'")); 
       $product_total_price = $pArr['quantity']*$pArr['pret']; 
       $endsumm += $pArr['quantity']*$pArr['pret']; 

回答

0

在車中插入產品之前,您應檢查該產品已經在車與否。

  • 在這裏,你的情況,你應該檢查的的productid以及大小是在購物車或不可用。
    如果任何一個或兩個條件不成立,則將該產品插入購物車。
    否則請更新購物車。

    $total =$_SESSION['CART']['tquan']+$_POST['quantity']; 
     $arrCart['pret']= $_POST['product_price']; 
     $arrCart['size']= $_POST['size']; 
    $_SESSION['CART']['tquan'] = $total; 
    $_SESSION['CART']['PRODUCT'][$pID] = $arrCart 

if(!in_array($pID, array_map(function($id){return $id[$pID];}, $_SESSION['CART']))){ 

      if(!in_array($_POST['size'], array_map(function($size){return $size['size'];}, $_SESSION['CART']))){ 

//Here insert the product into the cart as you were inserted in the question 

    } 


} 
+0

謝謝您的文字answear。如果我知道如何做到這一點,我會做到。所以我懇請你幫我編輯我成功開始工作的代碼。 但我也認爲必須有另一種方式。它應該能夠添加到購物車的產品和尺寸,並列出它們的權利。也許我插入數據的權利,但我沒有排它的權利......我沒有太多的經驗會議 Thx – learning

+0

好的。我會嘗試。 :) –