Всех форумчан с праздниками!
Прошу помощи с реализацией понедельной пагинации. Есть каталог с релизами и анонсами с ~2005го по ~2016й год (к примеру). При попадании на главную страницу каталога, бд должна вывести все материалы текущей недели (с группировкой по дням?). При этом пользователь имеет возможность перемещаться по средствам пагинации как к прошлым неделям, так и будущим. В бд есть столбец с датой выхода в формате xxxxxxxx год месяц число. Подобный пример реализации понедельной пагинации нашел на сайте _http://www.gamespot.com/new-games . У кого есть соображения по этому поводу буду очень благодарен)
- 09.01.2015 16:26
- 09.01.2015 21:57
Есть такой вариант:
Код:Обратите внимание на:SELECT * FROM `base`.`table` WHERE `date` BETWEEN date_sub(now(),INTERVAL 2 WEEK) AND date_sub(now(),INTERVAL 1 WEEK);
INTERVAL 1 WEEK - это как вам уже стало очевидно интервал за одну неделю, просто увеличивайте значение интервалов.Спасибо сказали:
waterfly(09.01.2015), - 09.01.2015 22:47
HiNeX, если я правильно понимаю, проблема в формате даты. В поле date у меня заносится значение 20150101, а date_sub ищет по формату 2015-01-01. Или я не правильно понимаю.
- 10.01.2015 01:16
waterfly, верно, для даты лучше использовать DATE и соответственно DATETIME, в ином случае придется велосипедить на PHP.
PHP код:$from = date('Ymd', strtotime('-2 week'));
$to = date('Ymd', strtotime('-1 week'));
Код:SELECT * FROM `base`.`table` WHERE `date` BETWEEN '{$from}' AND '{$to}'; - 10.01.2015 07:55
HiNeX, так, уже кое что выходит. Пробую теперь прикрутить к кнопкам пагинации.
- 10.01.2015 10:20
что мешает сортировку с убыванием сделать?
- 10.01.2015 11:51
- 10.01.2015 18:41
Собственно, вот. В процессе пришлось отказаться от идеи недельной пагинации в пользу месячной. Только теперь не получается вывести дату совместно с днем недели.
PHP код:В итоге получаем:<?php
$tables_array = array();
$rusDays = array("Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"); // Создаем массив "дней недели", в соответствии с порядком параметра %w
$queryId = mysql_query("SELECT title, rdate, [B]DATE_FORMAT(`rdate`, '%w')[/B] AS `weekday` FROM index WHERE
MONTH(`rdate`) = \"$m\"
AND YEAR(`rdate`) = \"$y\" ORDER BY rdate asc");
// "Сортируем" полученный результат и создаем двумерный
// массив "дней недели" и содержащихся в них строк,
// возвращенных из БД
while ($result = mysql_fetch_assoc($queryId)) {
$tables_array[$result['weekday']][] = $result;
}
// Обрабатываем все значения массива, присваивая
// переменной $weekday - ключ (который является в нашем
// случае днем недели (от 0 до 6, где 0 - воскресенье, 6- суббота)
// Присваиваем переменной $rows - значения в массиве, который
// в нашем случае содержит строки из БД
foreach ($tables_array as $weekday => $rows) {
echo "<h4>".$rusDays[$weekday]."</h4>";
foreach ($rows as $row) { // обрабатываем все строки и выводим их в РАЗНЫХ таблицах....
echo "<p><b>".$row['title']." </b></p>";
}
}
?>
Январь 2015
Четверг
Материал1
Материал2
Материал3
Воскресение
Материал4
Пятница
Материал5
Материал6
Материал7
Материал8
У кого есть мысли как добавить дату ко дню недели?
Тэги топика:
Похожие темы
| Темы | Раздел | Ответов | Последний пост |
|---|---|---|---|
Пагинация и SEO | Вопросы от новичков | 10 | 15.11.2014 16:57 |
Не работает пагинация | WordPress | 0 | 11.11.2014 19:17 |
Пагинация фото | WordPress | 3 | 23.08.2014 14:16 |
Пагинация joomla 2.5 | Joomla | 6 | 11.12.2013 19:46 |
Пагинация длинных статей | Вопросы от новичков | 6 | 25.03.2012 23:01 |








