Du kommer att upptäcka att det är ganska svårt att skapa en lista över tillgängliga dagar i MySQL. Jag rekommenderar istället att du väljer en ordnad lista med bokade dagar inom din önskade månad och sedan loopar över alla dagar i den månaden i PHP och hoppar över dagen om den matchar nästa bokade dag från din MySQL-fråga. Svaret på denna fråga hjälper dig att bygga de datum som du vill gå över i PHP. I pseudokod:
$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);
}
För att kontrollera om en ny reservation är möjlig, kanske du vill ta en titt på mitt svar till en mycket liknande fråga tidigare idag.