一般要在網站使用購物車,可以把資料給存在 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 就可以了。