延续昨天的构想,今天来试试看能否成功。
昨天的构想好像有点错误,因为购物车只会有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>
今天先这样,下次见。
<<: [Day 7] Reactive Programming - Reactor(FLUX & MONO) Part 1
>>: 【Day10】[资料结构]-杂凑表Hash Table-实作
前几篇的互相比较来比较去的,是不是都有点乱了思绪,今天来做个小复习,从DAY5: node 的内部机...
こんばんわー(U 'ᴗ' U)⑅ SONYKO 打油。 连续一周睡眠 < 5小时了,我是谁我在...
前言 今天要来介绍 Go 语言里的网路操作,这边会以介绍 net/http 这个套件为主,并且介绍什...
客制化, Customization 在 NetSuite 内提到 客制化 通常表示的是, 流程变更...
前言 终於进入新的篇章06-Wireless Attacks,但由於先前的Kali虚拟机环境无法进行...