gpt4 book ai didi

php - 从数据库 mysql 和 PHP 应用折扣

转载 作者:行者123 更新时间:2023-11-30 22:56:43 25 4
gpt4 key购买 nike

我在 mysql 中有一个表,它存储适用于餐馆的折扣。结构如下:

id    res_id    disc_amt    disc_percntge
------------------------------------------
1 2 300 15
2 2 500 25

$sqldisc = "select * from disc_n_coupons where restaurant_id=?";
$datadisc = DB::instance()->prepare($sqldisc)->execute
(array($_SESSION['res_in_sess']))->fetchAll();

现在,我想应用如果购物车总数已达到 disc_amt 则应应用 disc_percntge。目前两种折扣都在应用,即如果购物车中的总计已达到 500,则应用 15%,然后再次以折扣价 25%正在应用。但我只想按照提到的数量应用一张光盘。

下面是我的逻辑

foreach($datadisc as $rowsdisc){
if($subtl>$rowsdisc['disc_amt']){
echo $subtl."*".$rowsdisc['disc_percntge']."/"."100";
$subtldisc = ($subtl*$rowsdisc['disc_percntge'])/100;
}
$subtl = $subtl-$subtldisc;
}

最佳答案

您应该确保查询按降序返回折扣,最大的在前(如果适用较大的折扣,则应忽略后面较小的折扣)

$sqldisc = "select * from disc_n_coupons where restaurant_id=? ORDER BY disc_amt DESC";

然后,您需要做的就是在应用第一个允许的折扣后打破循环,例如;

foreach($datadisc as $rowsdisc) {

if($subtl < $rowsdisc['disc_amt'])
continue;

echo $subtl."*".$rowsdisc['disc_percntge']."/"."100";
$subtldisc = ($subtl*$rowsdisc['disc_percntge'])/100;
$subtl = $subtl-$subtldisc;
break;

}

关于php - 从数据库 mysql 和 PHP 应用折扣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26053125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com