【发布时间】:2012-08-01 20:48:09
【问题描述】:
我有一个项目表:itemID、itemName 每个项目都可以预订几天;每个项目可以有多个预订;预订永远不会重叠。
预订保存在预订表中:itemID、startDate、endDate
我想指定天数、开始日期和结束日期,然后在提供的开始日期和结束日期之间查找任何未预订期间为该天数或更短的项目。换句话说,我正在寻找给定日期范围内的“短期可用性”项目。然后我想返回每个 itemID 的短期可用性开始和结束日期列表。
我将不胜感激有关如何解决此问题的任何建议,理想情况下是在单个 MySQL 查询中,但使用 PHP 循环进行长期操作是可以的。
到目前为止,我的方法是获取 bookings 表中的所有唯一 itemID,其中包含在提供的开始日期和结束日期之内或之间的预订,然后使用 PHP 和 MySQL 查询的组合解析整个范围,并添加将 itemID 以及“短期期间”的开始和结束日期添加到数组中,但这不是一种优雅的方法。
谢谢
【问题讨论】:
-
如果您刚刚开始,不会使用像 CodeIgnighter 或 CakePHP 这样的框架让这件事变得更容易吗?
-
感谢您的建议。我会看看它们,但我认为在这种情况下我想做的是扩展我的 SQL 查询编写能力。
-
即使使用框架,您仍然会编写大量 SQL。他们的想法是他们会为你做很多日常工作,而且通常比你手工做的要好。