Реализация качественного вывода данных. ч3. Сортировка

Приветствую. Сегодня у нас заключительная мини-статья о совершенном способе вывода различных списков. Сегодня мы разберем такую важную часть как сортировка и менее важную, такую как регулирование количество записей на странице. Для реализации всего этого нам понадобятся те функции и доработки, которые мы успели составить в предыдущих статьях. Сегодня лишь заключительная часть.

добавляем сортировку и вообще красотень

Сортировка.

Было бы очень не плохо добавить возможность пользователю настроить порядок вывода записей. Ключевая функция, сохраняющая все переменные у нас есть. К ней добавляются еще 2 – $sort и $order. Их также можно сохранить в куках и передавать через GET.

Как известно – они хорошо ложатся на язык запросов. Наши запросы теперь будут выглядеть так:

SELECT * FROM TABLE WHERE ".implode(' AND ',$where) ORDER BY $sort,$order LIMIT ".($_GET[‘page’]* $count_on_page).", ".$count_on_page
SELECT count(*) CNT FROM TABLE WHERE ".implode(' AND ',$where);

При том нужно проверить эти переменные на возможные значения, а также проставить значения по умолчанию. При острой необходимости можно докрутить запрос на сортировку по множеству параметров, думаю, Вы разберетесь с этим сами при необходимости.

Не забываем передавать переменные через нашу волшебную функцию


get_link(array(‘sort’=>’id’,’order’=>’asc’));
get_link(array(‘sort’=>’id’,’order’=>’desc’));

Сортировку мы можем разместить в виде стрелочек после каждого пункта, можем вынести ее в отдельное поле сбоку. Все – на усмотрение проекта.

Количество записей на странице.

Вещь действительно полезная и дополняющая все вышеизложенное приятными возможностями. Не каждому хочется постоянно щелкать по кнопкам постраничника, удобнее показать 100 записей вместо 10. Хорошо

Мы уже использовали данный параметр $count_on_page. Остается его лишь подвязать к ссылке. Конечно же, через нашу волшебную функцию. Если мы не хотим, чтобы пользователю каждый раз приходилось подбирать число строк на странице – можем завязать ее на куки. Единственное – когда пользователь захочет указать ссылку на выборку – он не сможет передать ее правильно без принудительной передаче GETпараметра count_on_page.

get_link(array(‘count_on_page’=>’10’));

В остальном – все что надо – мы разобрали. Теперь у пользователя есть большая возможность самостоятельно проводить данные изменения, что повышает отношение к вашему ресурсу. Много ли ресурсов могут похвастаться таким механизмом? И дорого ли им обходится такой механизм?

Здесь все просто и прозрачно. Любые изменения вводятся легко и просто.

В заключении

Мы не затронули в данном разделе возможности группировки. Сразу отпишусь, что групповые функции относятся скорее к возможности строить отчеты. Просто подключить группировку не получится и не нужно в рамках задачи.

Данный вид списка в той или иной степени реализован в Фреймворке EXT-JS, только там все достаточно непросто. Чтобы внедрить не предусмотренный фильтр на несколько строк – приходится крепко задуматься. Мы же сосредотачиваемся на простых и универсальных решениях.

Возможно, в дальнейшем мы также рассмотрим – как универсально и легко получать нужное нам содержимое без перегрузки всей страницы. Так уже делают яндекс маркет и некоторые дорогие интернет магазины на базе битрикс. Ведь – мы просто сменили фильтр/сортировку/перелистнули страничку. Нам не нужно теперь обновлять всю страницу целиком… Рассмотрим это когда-нибудь потом

  • Автор: kosmom
  • Рейтинг: 0
  • Просмотров: 507
  • Комментариев: 0
  • Создан: 28.12.2012 13:05

Комментарии (0)