Мне нужно печатать количество новостей в год / месяц следующим образом:
2013
2014
У меня есть это:
$sql = "SELECT YEAR(FROM_UNIXTIME(timestamp)) AS YEAR, MONTHNAME(FROM_UNIXTIME(timestamp)) AS MONTH, COUNT(*) AS TOTAL FROM NEWS GROUP BY YEAR, MONTH"; $newsdata = DataAccess::ArrayFetch($sql); foreach($newsdata AS $news){ //what??? }
Теперь, как печатать годы и месяцы?
Вы сортируете их в запросе, затем печатаете их в указанном порядке. Вам нужно будет определить изменения года, чтобы напечатать заголовок года:
$sql = "SELECT YEAR(FROM_UNIXTIME(timestamp)) AS YEAR, MONTHNAME(FROM_UNIXTIME(timestamp)) AS MONTH, COUNT(*) AS TOTAL FROM NEWS GROUP BY YEAR, MONTH ORDER BY YEAR DESC, MONTH "; $newsdata = DataAccess::ArrayFetch($sql); $currentYear = null; foreach($newsdata AS $news){ if ($currentYear != $news['YEAR']){ echo '<h2>'.$news['YEAR'].'<h2>'; $currentYear = $news['YEAR']; } echo '<dd>'.$news['MONTH'].'<dd><dt>'.$news['TOTAL'].'</dt>'; }