Vale más o menos lo he entendido, aunque me parece que el código queda muy sucio. Vamos por partes, dudo que puedas meter un for dentro de una condición, has probado ha hacerlo fuera?me explico;
Código PHP:
<?
$condicion = "";//Creamos una string donde iremos concatenando cosas
for ( $dia = $diain; $dia <= $diafi; $dia++){
if ($dia == $diain)//Si es el primero
$condicion .= "(($an*10000)+($mes*100)+$di==($an*10000)+($mes*100)+$dia) ";
else//Si no es el primero
$condicion .= "|| (($an*10000)+($mes*100)+$di==($an*10000)+($mes*100)+$dia) ";
}
if ( $condicion )
?>
Es lo primero que se me ocurre aunque creo que queda muuuu sucio y no sé ni si funcionará. Pruebalo y me dices.