Te sugiero que aprendas a depurar tus consultas:
1. Guardas la consulta en una cadena de texto
2. Imprimes la consulta y observas si está bien escrita
3. Si te es posible copiar la consulta y ejecutarla a mano
4. Ejecutar la consulta con PHP y depurar en caso de error
Código PHP:
$sql = "SELECT * FROM reservaciones WHERE fecha_entrada BETWEEN '".$fecha_in."' AND '".$fecha_out."' OR fecha_salida BETWEEN '".$fecha_in."' AND '".$fecha_out."' AND id_edificio=".$id_edificio." AND habitacion LIKE '%$habitacion%'";
echo "SQL=$sql"
Ahora, veo que sólo estás haciendo el último paso.
A lo que pregunto, ¿recibes un error o algo?
Vamos, adivinar no podemos.