Задать вопрос
@eugeneledenev

Как сделать перебор комбинаций?

Нужен алгоритм перебора(а в идеале скрипт). Есть фильтр товаров на сайте. Для каждой комбинации атрибутов формируется свой url. Нужно сформировать эти url.
Имеем: список атрибутов для каждого товара, у некоторых атрибутов есть множественные значения(например светодиодный, led, диодный), максимальное количество атрибутов, которые можно выбрать, атрибуты должны иметь четкую последовательность в соответствии с порядком сортировки( то есть из вариантов ЛПО 36Вт и 36Вт ЛПО будет только 1 вариант)
На текущий момент у товара в среднем 15-20 атрибутов, максимум можно выбрать 5, итоговое количество значений атрибутом(с учетом множественности 20-40.
Пробовал парсить сайт, все программы выдают out of memory через пару недель.
Была мысль брать каждый товар, для него формировать комбинации, записывать в БД исключая дубли, но 90% комбинаций от товара к товару будут повторяться и это просто бесполезная трата времени.
Может просто взять все атрибуты уникальные, перебрать все комбинации( к примеру 100 атрибутов, максимум 5 может быть выбрано одновременно, на знаю как посчитать кол-во комбинаций) потом проверить есть ли товар с такой комбинацией(как это сделать не через БД не знаю, а через БД запросы будут по 0,5сек отрабатываться).
Помогите, чтобы не попасть на out of memory и по возможности экономить время.
  • Вопрос задан
  • 961 просмотр
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
ArtamonovDenis
@ArtamonovDenis
Full-stack developer
Зачем заранее формировать url для каждой комбинации?
Насколько я понял, нужно делать выборку товаров в зависимости от выбранных атрибутов, т.е. фильтровать

Фильтр = форма
Каждый атрибут = чекбокс/инпут/селект
Отметили атрибуты
Отправили сабмит формы-фильтра
PHP ловит GET/POST-массив и смотрит какие были отмечены атрибуты, в зависимости от этого формирует ссылку и/или выдать результат из бд

как это сделать не через БД не знаю, а через БД запросы будут по 0,5сек отрабатываться


В любом случае нужно где-то хранить информацию и обрабатывать ее в зависимости от фильтра

Если товаров не много, тогда можно при запуске страницы с товарами создать js-объект и уже работать с ним

Либо работать с БД и настроить кеширование, тогда однинаковые запросы не будут отнимать по 0,5 сек
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽