sobachnik
Новичок
Определить количество страниц (при выборке с фильтрами)
Приветствую!
У меня вот возник такой вопрос - как можно определять количество страниц при выводе записей из базы данных, если задана фильтрация? Т.е., например... есть товар, есть категория, к которой товар относится, отдельно есть записи о продавцах, отдельно есть таблица с регионами. И есть "обобщающая" таблица типа
`id_товара`, `id_продавца`, `id_региона`, `цена`
Как можно определить общее количество товаров, если, например, задан регион, продавец и категория..? Т.е. можно, конечно сперва делать запрос COUNT(`id_товара`) со всеми условиями, нужными для выборки записей в соответствии с установленным фильтром. А вторым запросом извлекать уже записи с LIMIT start, perPage... Но это два запроса и, по-моему, COUNT какой-то долгий, если строк много. Можно просто извлечь из базы все записи соответствующие фильтру, а потом уже в php пропарсить те, которые соответсвуют выбранной странице и с помощью count($array) определить количество товаров (соответственно и страниц). Но это, наверно, тоже излишняя нагрузка... Что можно сделать, чтобы знать заранее количество товаров для каждого способа фильтрации?
Вот я например в таблицу с категориями могу вносить количество товаров каждой категории. Ну и так же с продавцами и регионами. А как на счёт их всевозможных пересечений?...
Если бы было два критерия (например, только категория/продавец), то там можно было бы сделать что-то типа
И в дальнейшем как-то редактировать эту таблицу, а вот тут получается 3-х мерная таблица должна быть...
В общем, поделитесь, у кого какие мысли..?
Приветствую!
У меня вот возник такой вопрос - как можно определять количество страниц при выводе записей из базы данных, если задана фильтрация? Т.е., например... есть товар, есть категория, к которой товар относится, отдельно есть записи о продавцах, отдельно есть таблица с регионами. И есть "обобщающая" таблица типа
`id_товара`, `id_продавца`, `id_региона`, `цена`
Как можно определить общее количество товаров, если, например, задан регион, продавец и категория..? Т.е. можно, конечно сперва делать запрос COUNT(`id_товара`) со всеми условиями, нужными для выборки записей в соответствии с установленным фильтром. А вторым запросом извлекать уже записи с LIMIT start, perPage... Но это два запроса и, по-моему, COUNT какой-то долгий, если строк много. Можно просто извлечь из базы все записи соответствующие фильтру, а потом уже в php пропарсить те, которые соответсвуют выбранной странице и с помощью count($array) определить количество товаров (соответственно и страниц). Но это, наверно, тоже излишняя нагрузка... Что можно сделать, чтобы знать заранее количество товаров для каждого способа фильтрации?
Вот я например в таблицу с категориями могу вносить количество товаров каждой категории. Ну и так же с продавцами и регионами. А как на счёт их всевозможных пересечений?...
Если бы было два критерия (например, только категория/продавец), то там можно было бы сделать что-то типа
Код:
| company1 | company2 | company3
category1 | 3 | 9 | 17
category2 | 0 | 15 | 11
category3 | 5 | 6 | 8
В общем, поделитесь, у кого какие мысли..?