I'm creating a table that generates new columns according to the dates being generated.

I able to create it but the problem is the table looks like this:

I think the problem is in my foreach but i can't pinpoint where the real problem is.
Here is the snippet of my code:
<table class="table table-bordered">
<tr>
<th></th>
<th colspan="3"><?php
$from = strtotime($_POST['from']);
$to = strtotime($_POST['to']);
if($list_timelist):
do
{
$current = date("Y-m-d", $from);
$from = strtotime("+1 day", $from);
$exist = 0;
$date1 = "";
$date2 ="";
?>
<?php
endforeach;
if($exist==1)
{
$date2 = date("Y-m-d", strtotime($list->time_stamp));
echo "
<tr>
<th></th>
<th colspan='3' class='date'>$date1</th>
<tr>";
echo "
<tr>
<td></td>
<td>UT</td>
<td>LEAVE/ABSENT</td>
<td>OT</td>";
echo "</tr>";
}
else
{
$a=date("Y-m-d, D", strtotime($current));
$b=date("Y-m-d", strtotime($current));
echo "
<tr>
<th colspan='3' class='date'>".$a."</th>
<tr>";
echo"
<tr>
<td></td>
<td>UT</td>
<td>LEAVE/ABSENT</td>
<td>OT</td>
</tr>";
}
} while ($from <= $to);
else:
endif;
?></th>
<th colspan="3">Total</th>
<th rowspan="2">Filed OT</th>
<th rowspan="2">OT(previous cut-off)</th>
<th rowspan="2">Total OT for payment</th>
</tr>
<tr>
<td></td>
<td>UT</td>
<td>LEAVE/ABSENT</td>
<td>OT</td>
<td>UT<br>(hrs)</td>
<td>LEAVE/ABSENT<br>(days)</td>
<td>OT / Excess Time<br>(hrs)</td>
</tr>
<tr>
</table>
Thanks for the help!