Me parece que el problema está en la condición del bucle while $fecha == $ultima_fecha, con esta lo que se indica es que el bloque de sentencias se ejecute mientras o siempre que $fecha y $ultima_fecha sean iguales y si $fecha es menor que $ultima_fecha entonces la condición nunca se cumple y nunca se ejecuta el bloque dentro del bucle. Dejo un pequeño ejemplo, saludos.
Código PHP:
Ver original$fecha1= new DateTime("25-07-2013");
$fecha2= new DateTime("04-08-2013");
$unDia= new DateInterval("P1D");
while($fecha1<=$fecha2)
{
echo "La fecha actual es: ".$fecha1->format('d/m/Y')."<br>";
$fecha1->add($unDia);
}