Php 如何使用if语句检查可用位置?
我正在为一个露营网站开发一个预订系统。你可以坐在几个地方,但不可能在一个地方有两个不同的家庭 这就是为什么我想做一个if语句来检查给定的日期是否已经在这些地点预订,或者是否在任何地点都可用 如果一个位置被预订,我希望它在同一时间检查另一个可用的位置,如果在同一时间没有可用的位置,它应该说“这个时间附近没有可用的位置”,如果确实有1个可用的位置,它应该自动在该位置预订并告诉用户 我需要使用什么样的if语句 很少注意: 开始时间 Eindtijd=结束时间 reserveringen=预订 ReservingStijden=reservationtimesPhp 如何使用if语句检查可用位置?,php,mysql,sql,database,if-statement,Php,Mysql,Sql,Database,If Statement,我正在为一个露营网站开发一个预订系统。你可以坐在几个地方,但不可能在一个地方有两个不同的家庭 这就是为什么我想做一个if语句来检查给定的日期是否已经在这些地点预订,或者是否在任何地点都可用 如果一个位置被预订,我希望它在同一时间检查另一个可用的位置,如果在同一时间没有可用的位置,它应该说“这个时间附近没有可用的位置”,如果确实有1个可用的位置,它应该自动在该位置预订并告诉用户 我需要使用什么样的if语句 很少注意: 开始时间 Eindtijd=结束时间 reserveringen=预订 Rese
<?php
if (!isset($_SESSION['id'])){
header('Location: login.php');
}
$errors = [];
if(isset($_POST['submit'])) {
if ($_POST['begintijd'] == '') {
$errors['begintijd'] = "Wat is de eerste dag dat je op de camping wilt staan? ontbreekt";
}
if ($_POST['eindtijd'] == '') {
$errors['eindtijd'] = "Wat is de laatste dag dat je op de camping wilt staan? ontbreekt";
}
if (count($errors) == 0) {
//Hier haal je de plaatsen op
$sql = "SELECT * FROM reservering WHERE type = ? ";
$stmt = $conn->prepare($sql);
$stmt->execute([$_POST['type']]);
$result = $stmt->fetchAll();
//Hier haal je de reserveringstijden op
$sql1 = "SELECT * FROM reserveringstijden";
$stmt1 = $conn->prepare($sql1);
$stmt1->execute();
$result1 = $stmt1->fetchAll();
$begintijd = strtotime($_POST['begintijd']);
$eindtijd = strtotime($_POST['eindtijd']);
var_dump($_POST['begintijd']);
if (($begintijd <= $result1[0]['begintijd'])&&($begintijd < $result1[0]['eindtijd']))
{
echo "hallo?";
exit;
if (($eindtijd = $result1[0]['begintijd'])&&($begintijd < $result1[0]['eindtijd']))
{
echo "stap verder";
exit;
}
}
else
{
echo "mag niet hier komen";
exit;
/*$sql2 = "INSERT INTO `reserveringstijden`(`id_plaats`, `begintijd`, `eindtijd`, `id_kampeerder`) VALUES (?,?,?,?) ";
$stmt2 = $conn->prepare($sql2);
$stmt2->execute([$result[0]['id'], $_POST['begintijd'], $_POST['eindtijd'], $_SESSION['id']]); */
}
}
}
?>
<p>U wilt reserveren: </p>
<div class="blockform">
<form method="post">
<label for="Plaats">Waar slaap je in?</label><br>
<select id="type" name="type"><br>
<option value="tent">tent</option>
<option value="camper">camper</option>
</select>
<label>Eerste dag</label><br>
<input type="date" id="begintijd" name="begintijd" value=" <?php echo (isset ($_POST['begintijd']) ? $_POST['begtintijd'] : ''); ?> "><br>
<label>Laatste dag</label><br>
<input type="date" id="eindtijd" name="eindtijd" value=" <?php echo (isset ($_POST['eindtijd']) ? $_POST['eindtijd'] : ''); ?> "> <br>
<button type="submit" name="submit">reserveren</button>
</form>
</div>
U wilt reserveren:
我在哪?
帐篷
露营者
Eerste dag
让我假设您有两个参数,例如$begin
和$end
,一个保留
表,其中包含列开始时间
和结束时间
,以及一个包含空格的空格
表
那么重叠的逻辑如下所示:
where $begin < r.end_time and
$end > r.begin_time;
示例数据、期望的结果以及对您想要实现的内容的清晰解释都会有所帮助。
select s.*
from spaces s
where not exists (select 1
from reservations r
where r.space_id = s.space_id and
$begin < r.end_time and
$end > r.begin_time
);