mysql_fetch_array,日期分隔

时间:2013-12-04 14:41:11

标签: php mysql foreach

我正在尝试循环MySQL结果并返回相同的日期&代理商在一个单独的。包含此数据的表格包含每个代理在特定日期工作的票证数。每组日期应由表中的空行分隔。以下是我正在使用的代码。我相信我必须做一个foreach,但不知道如何让它工作。

以下是我希望实现的最终桌面布局的截图。

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>";

1 个答案:

答案 0 :(得分:1)

如果您按date_added对结果进行排序,则不需要任何foreach,只需将之前的日期与当前日期进行比较:

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'];
}