Группировка дат в PHP - PullRequest
       3

Группировка дат в PHP

2 голосов
/ 17 апреля 2011

У меня есть таблица дат и встреч в базе данных MYSQL.

Я хотел бы напечатать содержимое этого файла, на каждой дате, где назначена встреча, и я хотел бы сгруппировать их по ней.

* 1005 например *

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

Формат моей таблицы: идентификатор (int), дата (DATE), время (TIME), описание (varchar), место (varchar)

Как лучше всего это сделать, я думал об использовании одного цикла, чтобы найти все даты, а затем другого цикла в этом цикле, чтобы найти все встречи для каждой даты. Есть ли более эффективный способ?

Спасибо за ваше время и извините за плохое объяснение проблемы.

1 Ответ

3 голосов
/ 17 апреля 2011

Что-то вроде этого примерно настолько оптимально, насколько я знаю, как это сделать (при условии, что у вас есть место в памяти, что, очевидно, не должно быть проблемой здесь):

$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>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...