-1

jquery mobile を使用してモバイル Web アプリを作成しています。予約したいです。したがって、ユーザーはルーム、begin dateTime および end DateTime に入ります。次に、データベースにクエリを実行する Web サービス関数に移動します。

ユーザーが入力した開始日時と終了日時の間に予約があるかどうかを確認します。ある場合は、それらをリストに入れます。

今、私の JavaScript で、この関数を ajax 呼び出しで呼び出します。ここで、このリストに何かがあるかどうかを確認します --> 部屋が空いていない、そうでない場合 --> 部屋は空いています。

しかし、私のクエリには何か問題があります。それを理解するのを手伝ってもらえますか?

SELECT * FROM ARTICLES_RESERVERING res
INNER JOIN ARTICLES_ZAAL roo ON res.ZAALID = roo.ID WHERE roo.ID = @ZAALID 
AND (res.DATUM_BEGIN >= @DATUM_EINDE OR res.DATUM_EINDE <= @DATUM_BEGIN)

誰か助けてくれませんか?

敬具。

ステファン

4

1 に答える 1

0

オーバーラップ イベントの一般的なアルゴリズムは次のとおりです。

if ((eventA.startTime <= eventB.startTime && eventA.endTime > eventB.startTime) ||
    (eventA.startTime < eventB.endTime && eventA.endTime > eventB.startTime)) 
{
    // events overlap
}

編集

2 行目の最後の部分を変更して、eventA が eventB の最中にあるケースをカバーするようにしました。イベントの開始と終了は正しい時系列である必要があることに注意してください。

于 2012-05-31T06:57:55.200 に答える