Bueno, al final he conseguido lo que quería.
Gracias a gnzsoloyo y a NSD que me han iluminado. Probando y probando, lo he coseguido.
Aquí dejo el código por si alguien quiere practicar:
Código PHP:
Ver original$buscar = mysql_query ("SELECT dia_entrada, dia_salida, tipo_casa from reservas where ( tipo_casa = '$tipo_casa' )AND (('$dia_entrada' BETWEEN dia_entrada AND date_sub(dia_salida, interval +1 day)) or ('$dia_salida' BETWEEN date_sub(dia_entrada, interval -1 day) AND dia_salida) or (dia_entrada <= '$dia_entrada' AND dia_salida >= '$dia_salida') or (dia_entrada >= '$dia_entrada' AND dia_salida <= '$dia_salida'))");
Un saludo y gracias por vuestra ayuda.