gpt4 book ai didi

php - MySQL/PHP : catch all entries between 2 times and check against 2 other times

转载 作者:行者123 更新时间:2023-11-29 06:50:25 25 4
gpt4 key购买 nike

我有一个数据库,人们可以在其中预订两个特定时间内的房间,但可能会有其他人在同一时间或部分同时搜索可用房间。

数据库看起来像这样:

order | room | user | date (date-format) | from (time) | to (time)
1 123 foo 2013-04-04 12:00:00 17:00:00

当另一个用户在 f.ex 13:00 到 18:00 搜索房间是否可用时,问题就来了,因为我只能设法搜索房间是否在同一时间可用。

查询必须在特定日期和时间搜索特定房间。如果整个房间或某些时间房间都很忙,我想捕获这个并告诉用户房间很忙。

有什么建议吗?如果通过 PHP 更容易管理,我也会很高兴:-)

最佳答案

为什么不使用像这样的 SQL 来解决它(未经测试):

SELECT *
FROM booked
WHERE
room=$room AND
date=$date AND
(
(
/*
The reservation starts in the requested period
*/
from <= $start_time AND
to > $start_time
) OR (
/*
The reservation ends in the requested period
*/
from < $end_time AND
to >= $end_time
)
);

此查询将返回 $start_time 之间的所有预订和 $end_time并允许背靠背预订。如果您不想允许连续预订,请更改 <><==> .

重要:确保不要只使用字符串插值并插入未转义的用户提供的输入,因为这会使您的应用程序容易受到 SQL 注入(inject)攻击。

关于php - MySQL/PHP : catch all entries between 2 times and check against 2 other times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15807516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com