我覺得我在這裏很容易丟失一些東西,並在構建「預約日程安排」日曆時有點卡住。PHP for循環,匹配輸出與數據庫結果
客戶可以預訂他們自己的時間段,當他們這樣做時...我需要讓他人無法使用這些時間段。
對於「開始時間」選擇,我從上午9點至晚上7點以30分鐘的時間間隔使用下拉菜單中的「for循環」。如果在數據庫中保存「上午10點」的「開始時間」和「上午11點30分」的「結束時間」......上午10點,上午10點30分和上午11點需要從成功提交表單後的「開始時間」下拉菜單。
(數據庫結果是在一個字符串的形式... FYI)
爲了做到這一點,我有這樣的:
$sql_slots = "SELECT * FROM XXXXXXXXX WHERE date = '$query_date' ORDER BY XXXXXXXXX ASC";
$result_slots = mysqli_query($connection, $sql_slots);
$open = strtotime("9:00am");
echo'
<select name="start_time">';
for($b = 0; $b <= 20; $b++){
$y = strtotime(($b*30) . " Minutes", $open);
$the_time = date("h:ia", $y) . "<br>";
$starting = array();
while($row_result_slots = mysqli_fetch_assoc($result_slots)){
$starting[] = $row_result_slots['start_time'];
}
if(in_array($the_time, $starting)){
echo "<option>Not Available</option>";
} else {
echo "<option>" . $the_time . "</option>";
}
}
echo'</select>';
任何建議,要完成這個或不是「更好的方法in_array「來完成我想要做的事情?
預先感謝您。
爲什麼在'for'部分'while'一部分?在'for'的第一次迭代之後'mysqli_fetch_assoc'將不會提供任何內容。 – JOUM
良好的通話。我將while循環移至for循環之前,並解決了一個問題。另一個問題是 - 在進行比較時,我沒有考慮附加到$ the_time字符串的「
」。感謝您的幫助。 – Shane