2011-06-18 12 views
2

イム今、私は与えられたのitem_idは、ユーザーの開始を与えられ、MySQLで重複する日付を処理する方法は?

編集をenddateこの中に利用可能であるwheter AJAXを確認したい、アイテムと予約システム(すなわちビーマ)を構築するためにを試みる:少し不明でした、私はMySQLとPHPでそれをやりたいのですが、AJAXは結果をリクエストする方法です(可/不可)

どうすればいいですか?

私のテーブルには、この 'LIKE' になります。

reservation_id int PK 
reservation_createDate datetime 
reservation_startDate datetime 
reservation_endDate datetime 
item_id int FK(items.item_id) 

はのは、私は次のように既にDBに '予約' しているとしましょう: (の簡便のため、すべてのitem_id = 1)

reservation_id 1, item_id 1, from 2011-7-10 till 2011-7-14 
reservation_id 2, item_id 1, from 2011-7-14 till 2011-7-16 
reservation_id 3, item_id 1, from 2011-7-16 till 2011-7-20 

そして、ユーザーは2011-7-12から2011-7-18までitem_id 1を予約したいと思っています。これは、3つすべての予約が途中で行われているために表示されません。 MySQLでどうすればいいですか?

+2

があるあなたは、SQLテーブル内の実際の日付フィールドを使用していますか? – Trey

+0

AJAX(意味:JS)、PHP(タグを参照)、またはMySQL:これらのうちどれを今使用したいですか? :? – KingCrunch

+0

上記の編集済みの投稿、私はPHP/MySQLでそれをしたいと思います。日時フィールドを使用します – Sander

答えて

3
SELECT COUNT(*)<1 AS Available FROM `TABLE` WHERE (`startDate`>CHECKING_START_TIME AND `startDate`<CHECKING_END_TIME) OR (`endDate`>CHECKING_START_TIME AND `endDate`<CHECKING_END_TIME) OR (`startDate`<CHECKING_START_TIME AND `endDate`>CHECKING_END_TIME) 

結果が0より大きい場合、重複

+0

それは部分的に真です、あなたの答えにtho、2011-7-11まで入力すれば2011-7-12は私に0の結果を与えますDB内に10〜14の予約があります。 – Sander

+0

@Sander、DOH!ハハ私はその事件に対処するためにもう一つの条件を追加しました – Shad

+0

さようなら!私たちは今すべての可能性を持っていると思う:D – Sander

関連する問題