2013-06-22 4 views
0

안녕하세요 아래 코드를 사용하여 동일한 pid, 길이 및 카테고리가있는 항목이 장바구니에 이미 있는지 확인하고 있으면 항목 수를 조정해야합니다. 문제는 수량이 증가하는 대신 동일한 pid, 길이 및 카테고리가있는 항목을 추가하는 경우입니다. 쇼핑 바구니에 새 제품으로 추가됩니다.항목 금액 조정 실패

NOTE: An item has the same pid but it comes in different sizes and category. 

    if (isset($_POST['pid'])) { 
     $pid = $_POST['pid']; 
     $length = $_POST["size"]; 
     $qty = $_POST['Qty']; 
     $Category = $_POST['Category']; 

     $wasFound = false; 
     $i = 0; 
     if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) { 
      $_SESSION["cart_array"] = array(0 => array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty)); 
     } else { 
      foreach ($_SESSION["cart_array"] as $each_item) { 
        $i++; 
        while (list($key, $value, $ilength, $pcategory) = each($each_item)) { 
         if ($key == "item_id" && $ilength == $length && $pcategory == $Category && $value == $pid) { 

          array_splice($_SESSION["cart_array"], $i-1, 1, array(array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $each_item['quantity'] + 1))); 
          $wasFound = true; 
         } 
        } 
       } 
       if ($wasFound == false) { 
        array_push($_SESSION["cart_array"], array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty)); 
       } 
     } 
     header("location: cart.php"); 
     exit(); 
    } 
    ?> 
+0

이 DevZer0 U 무엇 @ 귀하의 요구 사항 – DevZer0

+0

에 대한 테스트 조건을 추가 코드를 테스트 제발? – Emily

+0

array_splice()가 거기에 있어야하는지 아니면 stackoverflow misstype이 맞지 않는지 확신 할 수 없다면 – KyleK

답변

0

나는이 시도 줄 것이다) 업데이트 및

foreach ($_SESSION["cart_array"] as $array_key=>$each_item) { 
       if ($each_item['item_id'] == $pid && $each_item['length'] == $length && $each_item['Category'] == $Category) { 
         $_SESSION["cart_array"][$array_key]['quantity']+=$qty; 
         $wasFound = true; 
       } 
      } 
+0

여전히 같은 문제. – Emily

+0

업데이트 된 코드를 사용해보세요. –

0

이 시도 ...

if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) { 
    $_SESSION["cart_array"] = array(0 => array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty)); 
    } else { 
     foreach ($_SESSION["cart_array"] as $key=>$each_item) { 

      if(($each_item['item_id']==$pid && ($each_item['length']==$length)&&($each_item['Category']==$Category)){ 
        $_SESSION["cart_array"][$key]['quantity']++; 
        $wasFound = true; 
         $wasFound = true; 
       } 
      } 

      if ($wasFound == false) { 
       array_splice($_SESSION["cart_array"], array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty)); 
      } 
    } 
    header("location: cart.php"); 
    exit(); 
} 
+0

같은 수량을 늘리는 대신 동일한 항목, 길이 및 카테고리를 추가합니다. – Emily

+0

지금은 어떨까요? – KyleK

+0

내가 그 카테고리를 추가했기 때문에 카테고리를 추가했는데 지금은 보이지 않는다. 같은 길이와 다른 카테고리를 가진 동일한 아이템을 추가하면 그 대신에 이전의 하나의 아이템을 업데이트한다. – Emily