昨天把購物車的資料表建好了(表 car)。
今天購物車製作的理想步驟應該是:
按下"加到購物車按鈕">> 把會員id、商品相關訊息 加到 表car >> 購物車做價格統計,然後列印出來。
上面動作會牽扯到商品數量,所以第18天的文章可以看一下。
https://ithelp.ithome.com.tw/articles/10266669
注意!!因為我的寫法,會異動到商品的資料表之php
要寫在"列印的程式碼"下面,否則會出錯 (第18天文章也有提到)
以下 VALUES('$st_id','$p_id','$p_name','$p_price','$buy_amount')";
裡面的變數也請參考 第18天的文章(裡面的列印程式碼)
<?php
/*按下"送出購買"*/
if(isset($_POST['buy_it_btn']))
{
//減少相應商品數量
$buy_amount = $_POST['buy_amount'];
$p_id =$_POST['P_ID'];
//最終數量 = 庫存數量 - 欲購買數量
$f_amount = $p_amount - $buy_amount;
$st_id = $_SESSION['auth_user']['user_id'];
if($f_amount > 0)
{
$query2="UPDATE s_product
SET product_amount ='$f_amount'
WHERE product_id ='$p_id' ";
}
$query_run2 = mysqli_query($con,$query2);
$queryA = "INSERT INTO car(staff_id, product_id, car_p_name, car_p_price, car_p_amount)
VALUES('$st_id','$p_id','$p_name','$p_price','$buy_amount')";
$query_runA = mysqli_query($con,$queryA);
if($query_run2 && $query_runA)
{
$_SESSION['status'] =" 購買成功!!!!!!!!!!";
header('Location: Hello.php');
}
else
{
$_SESSION['status'] =" 剩餘數量不足,購買失敗~~";
header('Location: Hello.php');
}
}
?>
補充:php若不會出錯,盡量可以寫在最上面,因為這樣可以不用刷新頁面,就可以更新最新內容(沒記錯的話)。不過因為我這購物車寫法會跳轉頁面(必定刷新)所以寫下面也影響不大...吧:D
【突然想到的(預想一下未來規劃): 日後該如何把每筆購物車內容集中在一筆訂單呢??
我們可依據會員ID來抓屬於我們的購物車資料,再來是...
我想到的是,先新增"訂單的資料表" 按下"送出訂單"之後就會新增一個"訂單ID",然後再把每個購物車的資料表(car)追加 "訂單ID 欄位"來做區分。
若 表car中的 "訂單ID"是-1的話就視為"無效(已取消)訂單"。有掛上的話再把它GROUP BY起來,集中成一筆訂單!
(以上構想,我也不知道是不是對的,之後試了才知道:D)】
【那現在又有個問題:我該依據什麼來統計當前購物車的價格呢?
把 表car 追加的"訂單ID" <<若此欄位值是-2的話則視為"未生效訂單"再把它集中起來?】
今天先這樣(確定能新增表car的資料),下次見。