user1741396
user1741396

Reputation: 33

mysql_fetch_array with dates separated

I am trying to loop through MySQL results and return same dates & agents in a separate . The table containing this data has the number of tickets each agent works on a specific day. Each group of dates should be separated by a blank row in the table. Below is the code I am working with. I believe I have to do a foreach, but not sure how to get it working.

Here is a screenshot to a final table layout I am looking to achieve.

enter image description here

    if($res && mysql_num_rows($res))
{
    while($row = mysql_fetch_array($res))
        {
if ($row['total_updated'] > 0) {
print   "<tr>";
print       "<td align=center>" . $row['date_added'] . "</td>";
print       "<td nowrap>" . $row['agent'] . "</td>";
print       "<td nowrap>" . $row['agent_location'] . "</td>";
print       "<td align=center>" . number_format($row['total_updated']) . "</td>";
print       "<td align=center>" . number_format($row['total_notes']) . "</td>";
print       "<td align=center>" . number_format($row['total_closed']) . "</td>";
print       "<td align=center>" . number_format($row['ticket_app1_updated']) . "</td>";
print       "<td align=center>" . number_format($row['ticket_app1_notes']) . "</td>";
print       "<td align=center>" . number_format($row['ticket_app1_closed']) . "</td>";
print       "<td align=center>" . number_format($row['ticket_app2_updated']) . "</td>";
print       "<td align=center>" . number_format($row['ticket_app2_notes']) . "</td>";
print       "<td align=center>" . number_format($row['ticket_app2_closed']) . "</td>";
print       "<td align=center>" . number_format($row['ticket_app3_updated']) . "</td>";
print       "<td align=center>" . number_format($row['ticket_app3_notes']) . "</td>";
print       "<td align=center>" . number_format($row['ticket_app3_closed']) . "</td>";
print   "</tr>";
    }
        }
}
print   "</table>";

Upvotes: 0

Views: 153

Answers (1)

V G
V G

Reputation: 1225

If you sort your results by date_added you don't need any foreach, just compare previous date with current one:

while($row = mysql_fetch_array($res))
{
    if (!isset($lastdate))
        $lastdate = $row['date_added'];
    if ($lastdate != $row['date_added']) {
         ?><tr><td colspan="15">---blank line---</td></tr> <?php
    }
    //paste all of your prints here
    $lastdate = $row['date_added'];
}

Upvotes: 1

Related Questions