for循环内循环

$begin = new DateTime($start_date );
$end   = new DateTime( $end_date );

while($mobilerow=$qls->User->qls->SQL->fetch_assoc($mobileres)){
    //array_push($data,$mobilerow);
    $unixtime_=$mobilerow['start_timestamp'];
    $orginal_time= substr($unixtime_,0,10);
    $start_date_orignal=date('Y-m-d',$orginal_time);
    for($i = $begin; $begin <= $end; $i->modify('+1 day')){ 
        echo "<pre>";
        echo $i->format("Y-m-d").'='.$start_date_orignal;
        echo "</pre>";
    }
}

Suppose my startdate(2016-06-25) and my enddate(2016-07-25) are like this and using while loop I am getting 9 result and using for loop I am getting 31 result . so when my while-loop get the first value it should check it from the 31 dates I am getting from the for loop but after that , its not showing any data . So i don't what I am doing wrong .