Реализация качественного вывода данных. ч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
  • Просмотров: 1021
  • Комментариев: 0
  • Создан: 28.12.2012 13:05

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

Ваши предложения и пожелания пишите на pro@kosmom.ru

Теги

ajax axios backup bootstrap core framework eloquent excel home project html ios javascript keep-alive kpi laravel legacy mvp orm php rip scroll solid timestamp undefined vue vuetify watch безопасность биометрический паспорт ваша любаша для путешествий загран на 10 лет загран паспорт загранпаспорт нового образца зимние книги как заполнить анкеты кеширование книги на новый год логирование мцф недвижимость новогодние книги образец заполнения антеты паспорт для путешествий паспорт нового поколения печать продукт проектирование прокси разработка ремонт ремонт в апартаментах ремонт нежилого помещения самокат сдача сколько стоил ремонт апартаментов спорт стандарты таблица финансы хостинг цена ремонта что почитать зимой юзабилити

Случайный пост

07.10.2015 11:21
Разбираю аптечку