从日期到日期 - 搜索和显示

Bro*_*ina 1 php mysql sql case

我有一个包含两位信息的数据库.从日期到日期.我需要这个条目每天出现在我的日历中,但我只能设法出现在第一个和最后一个日期.

DB的例子:

   job_no | date1(from)| date2(to)
   ________________________________
   1      |2013-01-28  | 2013-02-03
   2      |2013-01-14  | 2013-01-18
Run Code Online (Sandbox Code Playgroud)

编辑问题.我有一个日期输入的搜索栏,日历通过date1和接下来的6天查找条目.

我不能进行包含两个日期输入的搜索,因为我的用户习惯这种方式而且我不想增加搜索时间.我开始认为我必须找到日期之间的日期,array然后将其添加到a 然后使用a if statement来查找匹配...但是即使这样说也没关系.

关于工作1,我需要我的日历在28/29/30/31/01/02/03所有日期显示这项工作.

我目前的搜索SELECT * FROM jobs WHERE date1='$searchinput'PER日和日历此搜索.我使用strtotime将输入日期增加+1以添加到每天的搜索中.

日历页面.

我想要的结果.用户搜索日期28日.

 Mon 28          |      Tues 29     |    Wed 30     ...... | Fri 03    |
_________________________________________________________________________
   Job no 1      |      job no 1    |   job no 1    ...... | job no 1
Run Code Online (Sandbox Code Playgroud)

我现在有什么

  Mon 28       |      Tues 29     |    Wed 30     ...... | Fri 03    |
    _________________________________________________________________________
 Job no 1      |      blank       |      blank           | job no 1
Run Code Online (Sandbox Code Playgroud)

现在每天都有一个新的选择查询.它与日期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' 
Run Code Online (Sandbox Code Playgroud)

此查询选择我需要的内容,但是当我使用OR时,第一个WHERECLAUSE可以为null.我需要始终在条款中.我一直在寻找使用IIFCASE纠正,但不是如何实现100%...?

Joh*_*Woo 5

为什么不用 BETWEEN

SELECT * FROM tableName WHERE date BETWEEN 'date1' AND 'date2'
Run Code Online (Sandbox Code Playgroud)

更新1

SELECT * 
FROM tableName 
WHERE date BETWEEN '2013-01-28' AND '2013-01-28' + INTERVAL 6 DAY
Run Code Online (Sandbox Code Playgroud)