【发布时间】:2013-02-19 12:20:33
【问题描述】:
我有一个包含两个信息的数据库。从今天到今天。我每天都需要这个条目出现在我的日历中,但我只能设法在第一个和最后一个日期出现。
数据库示例:
job_no | date1(from)| date2(to)
________________________________
1 |2013-01-28 | 2013-02-03
2 |2013-01-14 | 2013-01-18
编辑问题。我的搜索栏允许输入一个日期,日历通过 date1 和接下来的 6 天查找条目。
我无法进行包含两个日期输入的搜索,因为我的用户已经习惯了这种方式,我不想增加搜索时间。我开始认为我必须找到日期之间的日期,将其添加到 array 然后使用 if statement 来查找匹配项......但即使这样说对我来说也没有任何意义。
关于工作 1,我需要我的日历在 28/29/30/31/01/02/03 的所有日期显示该工作。
我当前的搜索 SELECT * FROM jobs WHERE date1='$searchinput' PER day 并日历此搜索。我使用 strtotime 将输入日期增加 +1 以添加到每天的搜索中。
日历页面。
我想要的结果。用户搜索日期 28 日。
Mon 28 | Tues 29 | Wed 30 ...... | Fri 03 |
_________________________________________________________________________
Job no 1 | job no 1 | job no 1 ...... | job no 1
我现在拥有的。
Mon 28 | Tues 29 | Wed 30 ...... | Fri 03 |
_________________________________________________________________________
Job no 1 | blank | blank | job no 1
现在每天都有一个新的选择查询。它与日期 1 和日期 2 相匹配。我不像以前那样需要这个,我只有一天的工作,现在他们出去超过一天,需要在所有日子里记录工作,它只使用一个工作日期和工作日期。
编辑 2:
SELECT * FROM calender_db NATURAL JOIN job_db
WHERE section='two'
AND date1 < '$day' AND date2 > '$day'
OR date1 = '$day' OR date2 = '$day'
此查询选择我需要的内容,但当我使用 OR 时,第一个 WHERE CLAUSE 可以为空。我需要它始终在条款中。我一直在研究使用IIF 或CASE 来纠正但不知道如何实现100%...?
【问题讨论】:
-
你必须用引号包围
$date1&$date2。例如$date1 = '2013-01-28'; -
您能展示一下您目前拥有的代码吗?也许这会更好地解释你想要做什么。
-
根据您的第二次更新更新了我的答案。