Bạn sẽ thấy khá khó khăn để tạo danh sách các ngày khả dụng trong MySQL. Thay vào đó, tôi khuyên bạn nên chọn một danh sách có thứ tự các ngày đã đặt trong tháng bạn muốn, sau đó lặp lại tất cả các ngày của tháng đó bằng PHP, bỏ qua ngày nếu nó khớp với ngày đã đặt tiếp theo từ truy vấn MySQL của bạn. Câu trả lời cho câu hỏi này sẽ giúp bạn xây dựng ngày tháng mà bạn muốn lặp lại trong PHP. Trong mã giả:
$booked_days = sql(select all booked days in month order by day);
for each $day in month {
if $day != current($booked_days) {
// $day is not booked
} else advance_next($booked_days);
}
Để kiểm tra xem có thể đặt chỗ mới hay không, bạn có thể muốn xem câu trả lời của tôi cho một câu hỏi tương tự sớm hơn hôm nay.