me levante de muy buen humor (a las 13.30 xD), asi que mira no tengo las tablas creadas como para probar el sql exacto pero aca te dejo mas o menos como hacerlo
supone desde el form de consulta te pasan la fecha con este formato :
Código PHP:
$fecha = 'dd/mm/aa';
$t = explode('/',$fecha);
$tiempo = mktime(0,0,0,$t[1],$t[0],$t[2]));
$sql_1 = "SELECT habitacion_id
FROM reservaciones
WHERE fecha_inicio >= $tiempo
AND fecha_fin <= $tiempo";
$query_ocupadas = mysql_query($sql_1);
/*
sacamos los ID de las ocupadas
*/
$ocupadas = array();
while($row = mysql_fetch_assoc($query_ocupadas)){
$ocupadas [] = $row['habitacion_id'];
}
$ides = implode(',',$ocupadas);
$sql_2 = "SELECT * FROM habitaciones
WHERE habitacion_id NOT IN ($ides)";
$query_libres = mysql_query($sql_2 );
Espero se entienda cualquier cosa podes consultar en el foro de MySQL tambien