iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
自我挑戰組

HTML、 PHP CRUD 自我學習系列 第 21

第21天 - 來試著做一個簡易購物系統(5),統計購物車價格

  • 分享至 

  • xImage
  •  

延續昨天的構想,今天來試試看能否成功。

昨天的構想好像有點錯誤,因為購物車只會有1台,且紀錄是暫時的,所以目前先增加欄位。

那這次新的構想就是:要新建一個新資料表,如果購物車確定購買,則清空該帳號購物車的所有內容,並在新建立的資料表新增"處理(加總)過"的內容。
那...要如何區分不同訂單? <<這問題之前好像有點想太多,原本以為要把購物車的所有內容都原封不動搬過去,可是這樣資料表的欄位會非常難設計(對我來說)。不如直接把購物車的內容"處理(加總)過"再新增到新資料表,再加時間戳來做區分~!
這樣應該會輕鬆很多。

程式碼如下(這次比較重要的是 sql 的語法)
(注意一下,裡面有兩個會員的購物車,但只列印、計算該帳號的內容)
https://ithelp.ithome.com.tw/upload/images/20210921/201413552JWNIdtfnO.png

<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>

https://ithelp.ithome.com.tw/upload/images/20210921/20141355jgqpxHGgLk.png

今天先這樣,下次見。


上一篇
第20天 - 來試著做一個簡易購物系統(4)購物車卡關了,先確定能新增資料:(
下一篇
第22天 - 購物系統可能先掰掰... 代替的是:SQL_不顯示上傳過的類型
系列文
HTML、 PHP CRUD 自我學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言