ユーザーが(別のページで)予約するカレンダーシステムを作成しています。このページで、ユーザーは関連するボックスをクリックして、新しい予約の開始時刻を選択します。データベースで既存の予約をチェックし、二重予約を防ぐためにクリックできないようにしています。
私の質問は、なぜその日の最初の予約だけがテーブルに表示されるのですか?
変数は$booked
trueのままなので、他の予約は表示されませんか?頭が回らない!
MySQL:
$query="SELECT * FROM bookings WHERE DateBooked = '{$year}-{$month}-{$selectedday}' AND Approved = 1";
$result = mysql_query($query);
$todayarray = mysql_fetch_assoc($result);
そしてPHP:
while ($room <= $roomcount) {
echo "\n<div class=\"roomtimes\">";
echo "\n<table border=1>";
echo "\n<tr><th class=\"titlecell\">Room $room</th></tr>";
$cellnum = 10;
while ($cellnum <= 22) {
if (($todayarray['StartTime'] <= $cellnum) && ($todayarray['EndTime'] >= $cellnum) && ($todayarray['Room'] == $room)) {
$booked = true;
} else {
$booked = false;
}
echo "\n<tr>";
if ($booked) {
echo "\n<td class=\"blankcell";
} else {
echo "\n<td class=\"linkcell";
}
if ($selectedtime == $cellnum) {
echo " selectedcell";
}
echo "\">";
if ($booked) {
echo "$cellnum:00 --BOOKED--";
} else {
echo "<a href=\"newbooking.php?m=$selectedmonth&d=$selectedday&t=$cellnum&r=$room\">$cellnum:00</a>";
}
echo "</td>";
echo "\n</tr>";
$cellnum++;
}
$room++;
echo "\n</table>";
echo "\n</div>";
}
echo "\n</div>";
?>