延續昨天的構想,今天來試試看能否成功。
昨天的構想好像有點錯誤,因為購物車只會有1台,且紀錄是暫時的,所以目前先增加欄位。
那這次新的構想就是:要新建一個新資料表,如果購物車確定購買,則清空該帳號購物車的所有內容,並在新建立的資料表新增"處理(加總)過"的內容。
那...要如何區分不同訂單? <<這問題之前好像有點想太多,原本以為要把購物車的所有內容都原封不動搬過去,可是這樣資料表的欄位會非常難設計(對我來說)。不如直接把購物車的內容"處理(加總)過"再新增到新資料表,再加時間戳來做區分~!
這樣應該會輕鬆很多。
程式碼如下(這次比較重要的是 sql 的語法)
(注意一下,裡面有兩個會員的購物車,但只列印、計算該帳號的內容)
<table class="table table-sm table-bordered"style="text-align:center;">
<?php
//刪除購物車內容
if (isset($_POST['delete_car_btn']))
{
$id_c = $_POST['delete_car_id'];
$queryCC = "DELETE FROM car WHERE car_id='$id_c' ";
$query_runCC = mysqli_query($con,$queryCC);
}
?>
<thead style="text-align:center;">
<tr style="text-align:center;">
<th>商品</th>
<th>價格</th>
<th>數量</th>
<th>刪除</th>
</tr>
</thead>
<tbody>
<?php
$stc_id = $_SESSION['auth_user']['user_id'];
$queryC = "SELECT * FROM car WHERE staff_id = '$stc_id' ";
$query_runC = mysqli_query($con,$queryC);
if(mysqli_num_rows($query_runC) > 0)
{
foreach($query_runC as $rowC)
{
//下面兩個變數,原本想用此來做統計
//但後來發現,直接用SQL就好...多此一舉
$c_price = $rowC['car_p_price'];
$c_amount = $rowC['car_p_amount'];
?>
<tr>
<td><?php echo $rowC['car_p_name']; ?></td>
<td>$<?php echo "$c_price"; ?></td>
<td><?php echo "$c_amount"; ?></td>
<td>
<form method="post" action="" >
<!-- 下面有個 input type="hidden" 是讓待會的PHP 知道要刪除哪一筆資料 -->
<input type="hidden" name="delete_car_id" value="<?php echo $rowC['car_id']; ?>">
<button name="delete_car_btn"
class="badge badge-danger">
刪除
</button>
</form>
</td>
</tr>
<?php
}
}
?>
</tbody>
<?php
$queryT = "SELECT *, sum(car_p_price * car_p_amount) AS p_total
FROM car
WHERE staff_id = '$stc_id' ";
$query_runT = mysqli_query($con,$queryT);
if(mysqli_num_rows($query_runT) > 0)
{
foreach($query_runT as $rowT)
{
?>
<th>總計: $<?php echo $rowT['p_total']; ?></th>
<?php
}
}
?>
</table>
今天先這樣,下次見。