2015-08-13 75 views
1

當我使用此功能添加至購物車劇本我刪除了會話中已添加的數量!添加項目數量而不是替換

但我希望它添加了數量已加上數量已在籃子會話。

如何做到這一點?

滾動到上演示(頁面I F **** d以上)//此處

現場演示http://www.sanwebe.com/assets/php-shopping-cart/index.php

這裏右邊是下面的代碼,我使用

<?php 

session_start(); 

include_once("config.php"); 



//empty cart by distroying current session 

if(isset($_GET["emptycart"]) && $_GET["emptycart"]==1) 

{ 

    $return_url = base64_decode($_GET["return_url"]); //return url 

    session_destroy(); 

    header('Location:'.$return_url); 

} 



//add item in shopping cart 

if(isset($_POST["type"]) && $_POST["type"]=='add') 

{ 

    $product_code = filter_var($_POST["product_code"], FILTER_SANITIZE_STRING); //product code 

    $product_qty = filter_var($_POST["product_qty"], FILTER_SANITIZE_NUMBER_INT); //product code 

    $return_url  = base64_decode($_POST["return_url"]); //return url 







    //MySqli query - get details of item from db using product code 

    $results = $mysqli->query("SELECT product_name,price FROM products WHERE product_code='$product_code' LIMIT 1"); 

    $obj = $results->fetch_object(); 



    if ($results) { //we have the product info 



     //prepare array for the session variable 

     $new_product = array(array('name'=>$obj->product_name, 'code'=>$product_code, 'qty'=>$product_qty, 'price'=>$obj->price)); 



     if(isset($_SESSION["products"])) //if we have the session 

     { 

      $found = false; //set found item to false 



      foreach ($_SESSION["products"] as $cart_itm) //loop through session array 

      { 

       if($cart_itm["code"] == $product_code){ //the item exist in array 



        $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$product_qty, 'price'=>$cart_itm["price"]); 

        $found = true; 

       }else{ 

        //item doesn't exist in the list, just retrive old info and prepare array for session var 

        $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$cart_itm["qty"], 'price'=>$cart_itm["price"]); 

       } 

      } 



      if($found == false) //we didn't find item in array 

      { 

       //add new user item in array 

       $_SESSION["products"] = array_merge($product, $new_product); 

      }else{ 

       //found user item in array list, and increased the quantity 

       $_SESSION["products"] = $product; 

      } 



     }else{ 

      //create a new session var if does not exist 

      $_SESSION["products"] = $new_product; 

     } 



    } 



    //redirect back to original page 

    header('Location:'.$return_url); 

} 



//remove item from shopping cart 

if(isset($_GET["removep"]) && isset($_GET["return_url"]) && isset($_SESSION["products"])) 

{ 

    $product_code = $_GET["removep"]; //get the product code to remove 

    $return_url  = base64_decode($_GET["return_url"]); //get return url 





    foreach ($_SESSION["products"] as $cart_itm) //loop through session array var 

    { 

     if($cart_itm["code"]!=$product_code){ //item does,t exist in the list 

      $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$cart_itm["qty"], 'price'=>$cart_itm["price"]); 

     } 



     //create a new product list for cart 

     $_SESSION["products"] = $product; 

    } 



    //redirect back to original page 

    header('Location:'.$return_url); 

} 

?> 

回答

1

可能更改 此:

//found user item in array list, and increased the quantity 
$_SESSION["products"] = $product; 

爲:

//found user item in array list, and increased the quantity 
$_SESSION["products"] = $_SESSION["products"] + $product; 
+0

或檢查每一個你一些數據分配給$ _SESSION [ 「產品」] –

+0

$ _SESSION [ 「產品」] = $ _SESSION [ 「產品」] + $產品線; //根本不工作。 – olzonpon

+0

「檢查」是什麼意思? – olzonpon

相關問題