用PHP分组日期

时间:2011-04-17 00:50:04

标签: php mysql optimization loops time

我在MYSQL数据库中有一个日期和约会表。

我想将这些内容打印到一个文件中,每个约会的日期我想将它们分组。

e.g

<h1>Appontments on 28/01/11<h1>
<p>10am Visit mum</p>
<p>12pm eat cake</p>

我的表的格式是ID(int),日期(DATE),时间(TIME),描述(varchar),Place(varchar)

最好的解决方法是,我正在考虑使用一个循环来查找所有日期,然后在该循​​环中使用另一个循环来查找每个日期的所有约会。有更有效的方法吗?

感谢您的时间,并原谅我对此问题的错误解释。

1 个答案:

答案 0 :(得分:3)

这样的事情就像我知道如何做到最佳(假设你在内存中有空间,这显然不应该是一个问题):

$query = "SELECT * FROM appointments GROUP BY `date`";
// Because of the algorithm used to sort dates below, you don't even really
// need the GROUP BY. But what the heck, right?

$result = mysqli_query($mysql, $query);

$appointments = array();

while ($row = mysqli_fetch_assoc($result))
{
    if (!isset($appointments[$row['date']]))
    {
        $appointments[$row['date']] = array();
    }

    $appointments[$row['date']] []= $row;
}

foreach ($appointments as $date => $items)
{
    echo "<h1>{$date}</h1>";

    echo "<ul>";

    foreach ($items as $item)
    {
        echo "<li>{$item['Dime']}: {$item['Description']} " . 
             "@ {$item['Place']}</li>";
    }

    echo "</ul>";
}