PHP For循环,匹配数据库结果的输出

时间:2016-12-13 23:01:58

标签: php arrays for-loop mysqli

我觉得我在这里错过了一些简单的东西,并且在建立一个预约"预约时会遇到一些困难。日历。

客户可以预订自己的时间段,当他们这样做时......我需要让其他人无法使用这些时间段。

我正在使用下拉到" for循环"从上午9点到晚上7点,间隔30分钟,开始时间为#34;选择。如果"开始时间" "上午10:00"和#34;结束时间" " 11:30 am"保存在数据库中...上午10:00,上午10:30和上午11:00需要从"开始时间"成功提交表格后下拉。

(数据库结果采用字符串形式... fyi)

要做到这一点,我有这个:

IV243DLR

任何建议,要完成这个或更好的方法而不是" in_array"完成我想要做的事情?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

解决方案是将“while循环”移到“for循环”之外,而我没有考虑附加在$ the_time变量末尾的“br”。

以下是工作代码:

$sql_slots = "SELECT * FROM XXXXXX WHERE date = '$query_date' ORDER BY XXXXXXX ASC";    

    $result_slots = mysqli_query($connection, $sql_slots);  

    $open = strtotime("9:00am");

    $starting = array();

            while($row_result_slots = mysqli_fetch_assoc($result_slots)){   

                $starting[] = $row_result_slots['start_time'];

                }

    echo'
    <select name="start_time">';

        for($b = 0; $b <= 20; $b++){

            $y = strtotime(($b*30) . " Minutes", $open);

            $the_time = date("h:ia", $y);

            if(in_array($the_time, $starting)){
            echo "<option>Not Available<br></option>";
            } else {
            echo "<option>" . $the_time . "<br></option>";
            }
        }