私は予約システムを開発しています。私の予約フォームには、予約システムの利用可能な開始時間スロットを返すドロップダウン要素があります。複合検索によるドロップダウン
新しい予約を作成することによって、私が作成したクエリは正常に動作し、利用可能なすべての開始タイムスロットが正しく返されます。
QUERY:
WHERE {thistable}.id
IN (
SELECT id +3
FROM (
SELECT p1.book_date, t.*, count(p1.book_date) AS nbre
FROM fab_booking_taken AS p1
CROSS JOIN fab_booking_slots AS t
WHERE NOT ((t.heuredepart_resa < p1.book_end AND
t.heurearrivee_resa > p1.book_start))
AND DATE(p1.book_date)=DATE('{fab_booking___book_bookingdate}')
GROUP BY t.id) AS x
WHERE nbre =
(
SELECT count(p2.book_date)
FROM fab_booking_taken AS p2
WHERE p2.book_date = x.book_date
)
) ORDER BY id ASC
ビデオを参照してください:
:私は、既存の予約可能な開始時間スロットがファインである返され編集することにより、同じクエリを使用してい booking creationg問題を
18:00 18:30 19:00 19:30
私の例14:00にある顧客が選択した(およびデータベースに保存された)タイムスロットではありません。
ビデオをご覧ください。Editing booking with same query
ドロップダウンは、以下のオプションを使用して移入する必要があります。
14時 午前18時00 午後6時30分 19時00 19時30
私は顧客が選択した開始タイムスロットと(まだ)利用可能な開始タイムスロットによって既に取得するためのユニオンクエリを作成しようとしました。
QUERY:
{thistable}.id
IN (
SELECT id + 3
FROM (
SELECT p1.book_date, t.*, count(p1.book_date) AS nbre
FROM fab_booking_taken AS p1
CROSS JOIN fab_booking_slots AS t
WHERE NOT ((t.heuredepart_resa < p1.book_end
AND t.heurearrivee_resa > p1.book_start))
AND p1.book_date = DATE_FORMAT('{fab_booking___book_bookingdate}', '%Y-%m-%d')
GROUP BY t.id
) as foobar2
UNION (
SELECT id + 3
FROM (
SELECT p1.book_date, t.*, count(p1.book_date) AS nbre
FROM fab_booking_taken AS p1
CROSS JOIN fab_booking_slots AS t
WHERE ((t.heuredepart_resa < p1.book_end
AND t.heurearrivee_resa > p1.book_start))
AND t.id = '{fab_booking___book_starttime}'
AND p1.book_date = DATE_FORMAT('{fab_booking___book_bookingdate}', '%Y-%m-%d')
GROUP BY t.id
) AS x
WHERE nbre = (
SELECT count(p2.book_date)
FROM fab_booking_taken AS p2
WHERE p2.book_date = x.book_date
)
)
)
既に顧客選択された開始時間帯によっては、返された(14:00)であるが、他の利用可能な返さ開始タイムスロットが正しくありませんされています。
ビデオをご覧ください。Editing booking with union query
私がこだわっていると私は、私はこの問題を解決することができ、私はここにいくつかの助けに感謝だろうか見当もつかない。
おかげ
関連するデータベーステーブルビデオ25 11 2016 ID = 347
上の既存の予約と
fab_booking_takenに当該予約でfab_booking
ID 347は、私は認めざるを得ない、ドロップダウン要素
このクエリはかなり複雑です。クエリで参照されている各テーブルのサンプルデータをいくつか投稿した場合は、役立つはずです。 – mendosi
mendosiありがとう、データベーステーブルをダウンロードすることができます。 – marcq
私はあなたのビジネスルールを完全に理解していませんが、14:00〜17:30の予約で時間を変更したい場合は、14:00,18:00,18:30,19: 00と19:30?なぜ14:30,15:00,15:30,16:00,16:30,17:00,17:30にもなりませんか? – mendosi