Здравствуйте, столкнулся с проблемой постраничного вывода данных. Есть база с товарами, товары нужно выводить пользователю (поиск или показ из категории), но у некоторых товаров одинаковые названия, такие товары нужно показывать как один, и внизу указывать, что товаров с таким названием несколько, и показывать отличия. Сколько таких совпадений у товара - неизвестно. Вывод товаров нужно как то лимитировать, но на уровне запроса я не могу (или не знаю как), так как не знаю, будут ли среди запрашиваемых товары с повторяющимися именами. Решил выбирать все товары, потом на пхп группировать по названиям и получать готовый массив с товарами. Вопрос: можно ли как то этот массив выводить частями, чтобы не повторять запрос?
Вопрос: можно ли как то этот массив выводить частями, чтобы не повторять запрос? Судя по этому вопросу, Вы хотите выгрузить все товары в массив php и уже его разбивать на части и выводить? Если это так, то я бы посоветовал поглядеть array_chunk. Но все же лучше отказаться от идеи грузить все данные в один php массив. Лучше как написали выше воспользоватся запросом с LIMIT.
Вот попробуйте такой вот запрос
SELECT
`id`,
`name`,
COUNT(`name`),
GROUP_CONCAT(`param` SEPARATOR ', ') as `params`
FROM `tovar`
GROUP BY `name`
LIMIT 0, 6;
Поэтому я отдаю ограниченное количество товаров и все, просто отрезаю массив, если он больше 500, а остальное выкидываю. Смущает, поэтому и прошу совета
витягувати все в один масив неправильно, так як зіткнетесь з проблемою відсутності потрібних товарів в масиві. І падінню php і тп. Вирішуйте проблему на рівні БД. Попробуйте Select distinct product_id, або Union а потім group by.
Но тогда я не смогу получить их отличия, а мне нужно чтобы выводилось именно название товара, а внизу количество товаров с таким же именем и их отличия. Они отличаются, например, по цене.
1) Название: Стол, Цена: 1000, 2) Название: Стол, Цена: 1200. Это два товара с названием "стол", но цены у них разные. Помимо цен, разными могут быть размеры, цвет и тп
И мне нужно, чтобы в выдаче не было товаров с одинаковым названием, а был один товар с названием "стол", а внизу надпись типа "продуктов с таким названием 2 и их отличия"