|
 30.2 Кб |
|
| Подскажите пожалуйста, как делается вывод архива заметок как на прикрепленном изображении.
Логика вывода архива заметок примерно такая:
1. Если в GET ничего нет, то показать текущий год и перечислить месяцы, для которых существуют записи.
2. Если задан параметр GET, то вывести выбранный год и также перечислить месяцы, для которых существуют записи.
Нужен небольшой толчок, чтобы от чего-то оттолкнуться. | |
|
|
|
|
|
|
|
для: uch
(15.05.2011 в 20:37)
| | А архив где хранится? Может просто начать с задачи вывода списка годов, которые охватывают архив? | |
|
|
|
|
|
|
|
для: cheops
(15.05.2011 в 20:43)
| | Забыл сказать: заметки просто находятся в базе данных. Получается надо вытянуть год, за который есть последняя заметка, а потом месяцы.
Дальше, если хватит знаний, допишу самостоятельно. | |
|
|
|
|
|
|
|
для: uch
(15.05.2011 в 20:45)
| | Года можно вытащить при помощи следующего запроса
SELECT YEAR(pudate) AS `year`
FROM tbl
GROUP BY `year`
| Месяцы вероятно удобнее выводить все (например, из массива), независимо от того есть записи или нет, чтобы посетителям было удобнее ориентироваться. | |
|
|
|
|
|
|
|
для: cheops
(15.05.2011 в 21:16)
| | Скажите, а что означает YEAR(pudate)? | |
|
|
|
|
|
|
|
для: uch
(15.05.2011 в 22:26)
| | YEAR() - это MySQL-фнукция которая вырезает год из календарного значения базы данных, pudate - имя столбца календарного типа. | |
|
|
|
|
|
|
|
для: cheops
(15.05.2011 в 21:16)
| | Я написал вот такой запрос:
SELECT DISTINCT YEAR(date) AS year FROM article ORDER BY year DESC;
|
Не будет ли он сильно загружать сервер БД, если записей станет около 1000 или 3000? | |
|
|
|
|
|
|
|
для: uch
(17.05.2011 в 16:40)
| | Не должен... В любом случае, если он будет доставлять вам неприятности, всегда можно добавить дополнительный столбец с годом и проиндексировать его - в этом случае запрос будет выполняться очень быстро. | |
|
|
|