En cuanto a interfaz :
Lo suyo seria mostrar un calendario con las fechas en VERDE(10-30 habitaciones libres) AMARILLO(1-10) ROJO(0), donde poder elegir , y no lo tipico de elegir dia rellenar todo y mensajito: Dia ocupado.
Eso seria lo ideal, y otra forma es con un boton de "Comprobar disponibilidad" para una fecha.
Para lo cual deberias tener en la bd para cada fecha que habitaciones quedan, yo de ti asignaria ya la habitacion en la propia reserva, habitacion doble / con cama de matrimonio si-no, hab. individual(van con suplemento normalmente).
Es decir, tener la tabla de habitaciones y otra de ocupacion(habitacion,dia)
en ocupacion aparecen aquellos dias donde la habitacion este ocupada.
y para mostrar el calendario de verde/amarillo/rojo
select count(*) ocupadas, dia from ocupacion
group by (dia)
order by dia desc;
y eso te devuelve algo asi:
ocupadas | dia
13 23/3/2009
2 24/3/2009
Comprobar disponibilidad es muy sencilla tambien y parecida
select count(*) from ocupacion
where dia = elDia;
Esto para cada uno de los dias comprobando que sea menor de 30. y que alguna de las que queden sin ocupar coincida con lo que el ha elegido ( Hab.Doble, suite, etc.. ) sera mas sencillo si todas son iguales que es lo que suelen hacer.
PD: ¿ Es necesario que solo este en Gallego ? Si la respuesta es si, la mia es no te creo, una web de un hotel que quiere gente de fuera en el idioma local... lo dudo mucho, raro sera que no te la pidan en ingles ademas del castellano.
Si las imagenes tienen texto (en formato de imagen), deberian tener un texto alternativo.
PD2: En ocupacion te convendria guardar fechas posteriores al dia actual y hasta 3 meses posteriores, tampoco demasiadas.