我想我的问题可能有一个简单的解决方案,但我被卡住了。
我有一个 MYSQL-Table
和一个表单。用户输入填写表单。用户必须提供事件的开始时间。 例如8:00 点钟
和事件的持续时间。结束时间是根据持续时间计算的。因此,如果一个事件在 8 点开始,持续时间为 2 小时
,则将在结束时间列中写入 10:00
。
现在的问题是,我如何防止用户可以在 9:00
填写事件,因为房间被 8 - 10
封锁了?
我感谢您的帮助!
干杯!
最佳答案
用户提交表单后,您可以获取提交时间并使用以下查询检查房间是否在该时间被占用:
SELECT COUNT(1)
FROM event as e
WHERE e.room = <room_number>
AND (<start_time_of_new_event> BETWEEN e.start_time AND e.end_time
OR <end_time_of_new_event> BETWEEN e.start_time AND e.end_time)
start_time_of_new_event 将被提交开始时间值
end_time_of_new_event 将提交开始时间 + 持续时间
room_number -> 我假设你有更多的房间,可以举办事件
如果此查询返回 1 或更多,则房间在提交时间内已被占用。
如果您想禁用提交房间被占用的时间的可能性,您可以在显示表格之前选择被占用的时间段。并在脚本中决定哪些时间可以预订
关于PHP/SQL 阻止将某些时间写入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41198363/