Ще откриете, че е доста трудно да генерирате списък с налични дни в MySQL. Вместо това препоръчвам да изберете подреден списък с резервирани дни в рамките на желания от вас месец, след което да прегледате всички дни от този месец в PHP, като пропуснете деня, ако съвпада със следващия резервиран ден от вашата MySQL заявка. Отговорът на този въпрос ще ви помогне да изградите датите, през които искате да обикаляте в PHP. В псевдокод:
$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);
}
За да проверите дали е възможна нова резервация, може да искате да разгледате моя отговор на много подобен въпрос по-рано днес.