Как сделать фильтр по товарам, с учётом работы пагинатора страниц?
Есть форма с методом get, по которой фильтруются товары. Также есть пагинатор, который работает отдельно но приблизительно по тому же принципу. Как можно обьединить работу этих двух фильтров?
пагинатор это что? И фильтр это что?
От реализации зависит естественно, в нормальной архитектуре пэйджинг только определяет текущую страницу, может еще определять количество итемов на странице, к запросам отношения не имеет практически никогда.
Да я немного ошибся, пагинация просто разбивает массив на отрезки. Вопрос свёлся к тому, чтобы в ссылку пагинации добавлять параметры фильтра, делаю так и это работает но не корректно ( это твиг, 'get' => http_build_query($_GET) )
<a href="?{{ get }}&page={{ i }}">{{ i }}</a>
то есть это работает только один клик, дальше {{ get }} растёт как снежный ком.
semki096, ок, когда у вас будет 100 000 записей что делать будете? Докупите сервер помощней и памяти добавите?
Как насчет того чтобы:
1) Выбирать из базы только то что нужно(читайте про LIMIT)
2) Считать количество итемов в базе без их полной выборки(читай про count)
3) логика выбора линка у вас странная, и как построен пэйджинг из нее все еще не видно, кроме того как вы учитываете что страницы закончились(нигде не вижу количество итемов и страниц всего)?
то есть это работает только один клик, дальше {{ get }} растёт как снежный ком.
Ну так а что вы хотели? Вы же снова фигачите весь гет в строку запроса(вместе со всеми предыдущими $_GET['page']). неплохо было бы ансетить номер страницы в гет и ставить какой надо.