使用轻量级发票系统,我正在尝试更新我的商品'正确表没有完全成功。
保存发票后,我需要将当天为该购买者购买的商品标记为付款。
现在这是我的问题:
$markitemspaidquery = "UPDATE solditems SET paidstatus='paid', paidtime='$date' WHERE buyerid='$buyer_id'";
这会正确更新买家的记录,但问题是它会在表格中标记该买家的所有项目'付费&#39 ;;即使它是从3天前开始的。
如何使用类似这样的查询或实现此效果?
$markitemspaidquery = "UPDATE solditems SET paidstatus='paid', paidtime='$date' WHERE buyerid='$buyer_id' AND DATE(timesold)=CURDATE() AND paidstatus='unpaid'";
在所有情况下,由于公司的运作方式,所有事情都应该在当天结束时支付,但我想知道将来的参考,因为它只是耗尽了不必要的资源来更新每个项目为买家。
答案 0 :(得分:1)
以下是order by和limit
的示例update questions
set prepStatus=1,status_bef_change=status,cv_bef_change=closeVotes,max_cv_reached=greatest(max_cv_reached,closeVotes)
where status='O' and prepStatus = 0
order by qId desc
limit 900;
答案 1 :(得分:0)
您的数据模型中存在缺陷。您有已售出的商品和发票,但它们之间没有任何关联。
因此,您可以说:当客户每天有发票时,它必须是一张发票,其中包含该客户当天购买的所有商品。这是一个你可以弥补的规则 - 数据库并没有告诉你这个。
因此,在您的已售商品表中有一个引用到发票表。在系统中输入发票后,必须将其与其包含的所有商品相关联。因此,更新很容易,或者更好,没有必要,因为它不是销售的已支付的货物,而是发票。因此,售出的商品不应该有paystatus和paytime列,但发票应该。
更新:以下是工作数据模型的示例。每个项目都有一个发票号,最初为空。一旦客户结账,就会写入发票,并且所有没有发票编号的客户都会获得此新发票编号。发票的总金额是其项目的总和。即你不要冗余地存储这笔钱。
<强> auction_item
<强>发票