Список событий дневника, сгруппированных по дням в PHP / MySQL
Я пытаюсь составить список событий дневника в PHP из базы данных MySQL, но сгруппирован по дням. Я'объясню.
Это скриншот того, что у меня есть:
Как вы можете видеть, есть два события в дневнике на 23 октября 2012 года, на которых отображаются две иконки календаря / представления / что угодно 's. Я на самом деле хочу, чтобы он показывал один значок календаря слева, но перечислял все события этого дня справа, до следующего дня - как видно из моего a̶r̶t̶i̶s̶t̶s̶ впечатление идиотов ниже:
Это код, который я только что написал, может кто-нибудь указать мне правильное направление:
$SQL = "SELECT entry_id, entry_title, entry_body, entry_date, entry_day, entry_month, entry_year ";
$SQL .= "FROM pages_diary WHERE entry_month = :this_month AND entry_year = :this_year ";
$SQL .= "ORDER BY entry_date DESC;";
// PDO stuff
if ($STH->rowCount() > 0) {
while($row = $STH->fetch()):
$this_db_month_word = mktime(0, 0, 0, $row['entry_month']);
$this_db_month_word = strftime("%b", $this_db_month_word);
echo '';
echo '';
echo '';
echo '';
echo $this_db_month_word;
echo '';
echo '';
echo str_pad($row['entry_day'],2,'0',STR_PAD_LEFT);;
echo '';
echo '';
echo '';
echo '';
echo '<strong>'.htmlspecialchars($row['entry_title']).'</strong><br>';
echo '<p>'.htmlspecialchars($row['entry_body']).'</p>';
echo '';
echo '';
echo '';
endwhile;
} else {
echo '<p>There are no diary entries logged for <strong>'.$this_month_word.' '.$this_year.'</strong>.</p>';
}
Не ищите точный код (хотя это было бы забавно), просто объяснение подойдет, яЯ уверен, что я могу решить это из этого.
ФИКС
В конце цикла WHILE я добавил:
$last_db_day = $row['entry_day'];
А затем завернул элемент календаря в:
if ($last_db_day != $row['entry_day']) {
echo '';
echo $this_db_month_word;
echo '';
echo '';
echo str_pad($row['entry_day'],2,'0',STR_PAD_LEFT);;
echo '';
}