|
|
|
| Пытаюсь сделать такую фичу для архива новостей: отсчёт месяцев от даты открытия сайта и до текущего месяца. Пытался сделать при помощи цикла for(), но мне чего-то не хватает, нужен более сложный подход. Подскажите алгоритм, пожалуйста... | |
|
|
|
|
|
|
|
для: NIK
(21.01.2007 в 14:01)
| | Т.е. нужно количество месяцев с начала новостей? А где новости хранятся в базе данных или в файлах? | |
|
|
|
|
|
|
|
для: cheops
(21.01.2007 в 14:10)
| | да, именно. Новости лежат в БД, формат даты такой: в 3 полях лежит день, месяц, год. | |
|
|
|
|
|
|
|
для: NIK
(21.01.2007 в 14:19)
| | месяцы должны быть выровнены
а)по дате открытия сайта(1-й месяц работы, 2-й месяц и т.д.)
б) по текущей дате (свежие, 1 месяц назад, 2 месяца назад и т.д.)
в) по календарю (за январь 2007, декабрь 2006, ноябрь 2006 и т.д.)
?
Хранение даты в трех полях вместо одного с календарным типом обычно лишь усложняет серверные скрипты и запросы к БД. | |
|
|
|
|
|
|
|
для: Trianon
(21.01.2007 в 14:43)
| | в) январь 2007, февраль 2007 ... декабрь 2007 | |
|
|
|
|
|
|
|
для: NIK
(21.01.2007 в 14:46)
| | можно опереться на результаты запроса по месяцам
SELECT year, month, min(id) AS minid, max(id) AS maxid, count(id) AS cntid
FROM news
GROUP BY year, month
ORDER BY year, month
|
| |
|
|
|
|
|
|
|
для: Trianon
(21.01.2007 в 15:07)
| | гм, я даже не подумал что можно обойтись простым запросом к базе. Спасибо | |
|
|
|