gpt4 book ai didi

php - 比较php中的两个mysql数据库表/数组并根据时间戳进行更新

转载 作者:行者123 更新时间:2023-11-30 01:37:03 25 4
gpt4 key购买 nike

我知道这个标题很糟糕,我找不到更好的方法来阐明我的问题。

我搜索了SO但没有成功,但如果答案已经存在,请随意链接它,我会仔细阅读它。

<小时/>

我正在构建一个图书订购系统。人们整个月都会订购书籍,每个月底都会有一大笔订单到达。

订单被记录到具有以下字段的订单表中:

order_id, book_id, quantity, language, person_ordering, timestamp, month, year

当订单到达时,它们将被输入到具有以下字段的“已接收”表中:

book_id, quantity, language

现在假设一个人订购了 (2) 本书 1。另一个人订购了 (3) 本。还有另一个(5)。总计 (10)。然后订单到了,但只有 7 份。

我正在尝试编写一个脚本/函数来找出:

  • 哪些人将收到该书的副本(先到先得,因此先订购该书的人将首先得到其订单。
  • 如果某人只能部分履行订单,则更新订单表(或者可能需要新的待处理订单表?)以反射(reflect)他们仍有 X 金额等待履行。然后在下个月,他们的订单将再次根据订购日期首先履行。

我考虑过根据下订单的时间戳从 Orders 表中提取信息并对其进行排序,然后从 Received 表中提取信息并以某种方式比较两个数组并更新第三个数组?或者也许我缺少一个更简单的解决方案。

如果需要更多信息,我很乐意提供。我已经连续两天为这个问题而烦恼了。任何帮助将不胜感激。

谢谢!

最佳答案

对我来说,听起来您可以取消时间戳、月份和年份变量,并将其替换为单个日期时间戳。
另外,在“已接收”表中添加一列作为集合的日期时间戳。
最后,创建另一个表来跟踪已履行的订单。

  1. 在所需月份上选择 *,按“订单”数据的日期时间戳降序排列。
  2. 在单独的查询中获取“收到的”数据,以便使用正确的月份进行编程比较。
  3. 将每个“已收到”book_id 的“已收到”数量放入单独的变量(可能是键/值数组)中。
  4. 对于每个“已收到”book_id,在子循环中比较并计算每个订单所需的“已订购”数量,从而更新“已收到”数量值。在子循环的每次迭代结束时,如果您的“订购”数量不等于 0,那么您需要为下个月添加剩余数量的另一个条目,并将所有已履行的订单输入到您的新表中。

* 您**不会**想要修改任何现有记录,因为您将来几乎肯定需要保持不变。

清澈如泥? :P

* 数据库提示 - 每条记录的每个条目都应**始终**具有日期时间戳,并在可能的情况下,“谁做的”。

关于php - 比较php中的两个mysql数据库表/数组并根据时间戳进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16740964/

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