一般要在網站使用購物車,可以把資料給存在 session 內,這樣就可以在每個頁面都可以存取 session,那如果我們要把商品加到購物車,可以透過 ajax 等方法把資料給傳到後端,像是這樣:
session_start(); //啟用 session
$id=$_POST["id"]; //商品 id
$amount=$_POST["amount"]; //商品數量
if(isset($_SESSION["cart"])){ //判斷是否有 cart
$cart=$_SESSION["cart"];
}else{
$cart=[];
}
當有資料過來時,就判斷在購物車內是否有該商品,有的話就將數量加上去,沒有的話就新增一筆:
if (array_key_exists($id, $cart)) {
$cart[$id]=$cart[$id]+$amount;
}else{
$cart[$id]=$amount;
}
處理完後再將 $cart 存回去 session:
$_SESSION["cart"]=$cart;
刪除的話只要接收到商品 id,直接 unset 就可以了:
$id=$_POST["id"]; unset($cart[$id]); $_SESSION["cart"]=$cart;
處理完購物車的 session,再丟到資料庫去 query 就可以了。