Php 如何使用if语句检查可用位置?

Php 如何使用if语句检查可用位置?,php,mysql,sql,database,if-statement,Php,Mysql,Sql,Database,If Statement,我正在为一个露营网站开发一个预订系统。你可以坐在几个地方,但不可能在一个地方有两个不同的家庭 这就是为什么我想做一个if语句来检查给定的日期是否已经在这些地点预订,或者是否在任何地点都可用 如果一个位置被预订,我希望它在同一时间检查另一个可用的位置,如果在同一时间没有可用的位置,它应该说“这个时间附近没有可用的位置”,如果确实有1个可用的位置,它应该自动在该位置预订并告诉用户 我需要使用什么样的if语句 很少注意: 开始时间 Eindtijd=结束时间 reserveringen=预订 Rese

我正在为一个露营网站开发一个预订系统。你可以坐在几个地方,但不可能在一个地方有两个不同的家庭

这就是为什么我想做一个if语句来检查给定的日期是否已经在这些地点预订,或者是否在任何地点都可用

如果一个位置被预订,我希望它在同一时间检查另一个可用的位置,如果在同一时间没有可用的位置,它应该说“这个时间附近没有可用的位置”,如果确实有1个可用的位置,它应该自动在该位置预订并告诉用户

我需要使用什么样的if语句

很少注意:

开始时间

Eindtijd=结束时间

reserveringen=预订

ReservingStijden=reservationtimes

<?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
                 );