Scoprirai che è piuttosto difficile generare un elenco di giorni disponibili in MySQL. Ti consiglio invece di selezionare un elenco ordinato di giorni prenotati all'interno del mese desiderato, quindi scorrere tutti i giorni di quel mese in PHP saltando il giorno se corrisponde al giorno prenotato successivo dalla query MySQL. La risposta a questa domanda ti aiuterà a costruire le date su cui vuoi scorrere in PHP. In pseudocodice:
$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);
}
Per verificare se è possibile una nuova prenotazione, potresti voler dare un'occhiata alla mia risposta a una domanda molto simile prima di oggi.