Как отобразить данные из mysql сгрупированные по месяцам?

Здравствуйте, есть таблица с такой структурой

CREATE TABLE IF NOT EXISTS `data` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `price` varchar(10) DEFAULT NULL,
  `date` int(8) DEFAULT NULL,
  `comment` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;


В поле date хранится timestamp. Надо как то вытащить данные и сгруппировать по годам и месяцам. Хочу из этих данных сделать аналитическую табличку, но не понимаю как. То есть что бы было примерно так:
2013
Январь
-запись
-запись
-запись
Февраль
-запись
-запись
-запись
......
2014
Январь
-запись
-запись
-запись
Февраль
-запись
-запись
-запись
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
@ntzch Автор вопроса
В общем проблема группировки заключалась в дате timestamp, тут два варианта или сделать поле в базе данных не int, а date или оставить int и в запросе использовать FROM_UNIXTIME(unix_timestamp)
Запрос, примерно, в моём случае, выглядит так
SELECT FROM_UNIXTIME(`date`, '%Y') as `year` FROM `data` GROUP BY YEAR(FROM_UNIXTIME(`date`, '%Y-%m-%d'))

Тут идёт выборка по годам, далее уже в цикле в похожем запросе выводим месяцы ну и записи к ним
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@IceJOKER
Web/Android developer
....order by `date`

далее уже в коде :
$last_month = '';

START_LOOP
  if($last_month != $row['month']) { 
    $last_month = $row['month'];
    echo $row['month'];
  }
END_LOOP
//вот вам принцип работы, дальше сами
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы