2ビットの情報を保持するデータベースがあります。日付から日付まで。このエントリを毎日カレンダーに表示する必要がありますが、最初と最後の日付にしか表示されません。
DBの例:
job_no | date1(from)| date2(to)
________________________________
1 |2013-01-28 | 2013-02-03
2 |2013-01-14 | 2013-01-18
質問のために編集します。私が持っている検索バーでは1つの日付入力が可能で、カレンダーはdate1から次の6日間までのエントリを検索します。
私のユーザーはこの方法に慣れていて、検索時間を増やしたくないので、2つの日付入力を含む検索を行うことはできません。私は日付の間の日付を見つけなければならないと思い始め、それを追加してから、一致するものを見つけるためarray
にを使用if statement
します...しかし、これは私には意味がありません。
ジョブ1に関しては、28/29/30/31/01/02/03のすべての日付にこのジョブを表示するためにカレンダーが必要です。
私の現在のSELECT * FROM jobs WHERE date1='$searchinput'
1日あたりの検索数とこの検索のカレンダー。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の日と一致します。以前は1日しか仕事がなかったので、これは必要ありません。現在は1日以上外出しており、すべての日に仕事を記録する必要があります。日付からの仕事と日付への仕事。
編集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はnullになる可能性があります。私はそれが常に条項に含まれる必要があります。私は使用IIF
またはCASE
修正することを検討してきましたが、100%を実装する方法はありません...?