YanGus Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Здравствуйте,Я php программист и помогите пожалуйста подкиньте идею реализации и т.п Я хотел сделать фильтр товаров по аттрибутам (стандартным). Я сделал вывод аттрибутутов и их значения. Столкнулся с проблемой с фильтрацией. Есть таблица там вот такие значения oc_product_attribute (во вложении есть картинка). Я могу сделать фильтрацию товаров по одному аттрибуту, например WHERE oc_product_attribute.text = "2 года" Как сделать,чтобы был вывод товаров по 2 или более аттрибутам.? Если писать WHERE oc_product_attribute.text = "2 года" AND oc_product_attribute.text = "2 аттрибут" //не будет работать т.к там отдельная запись под каждый аттрибут А мне надо узнать product_id Есть идеи реализации? Надіслати Поділитися на інших сайтах More sharing options...
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 А по ID не вариант фильтровать ))) ? Передаете выбранные атрибуты через IN Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я вот к примеру модифицировал стандартный фильтр ОС, ничем не хуже фильтрации по атрибутам, даже лучше и удобнее. Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 5 минут назад, legioner26 сказал: А по ID не вариант фильтровать ))) ? Передаете выбранные атрибуты через IN В том то и дело, что мне надо фильтровать по аттрибутам Чтобы узнать id товаров которые нужно мне вывести...SELECT * FROM oc_product_attribute tt WHERE tt.text IN ('2 года', '16МП') Эта запись аналогична Or а мне надо чисто через AND Есть идеи? Если переделать стандартный фильтр, то как лучше? Кстате, стандартный модуль Фильтр чет не робит у меня Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Посмотрите модель getProducts, как она устроена и сделайте на основе свое. 1 Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Посмотрите модель getProducts, как она устроена и сделайте на основе свое. Я так и делаю) Только там нет фильтра по аттрибутам я там пилю и вот столкнулся проблемой, которую описал выше Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории, описание, имя, цены продукта и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Уловили мысль ? Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. 1 Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 5 минут назад, legioner26 сказал: Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Можно Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 3 минуты назад, legioner26 сказал: Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. ))) Просто хочу сделать фильтрацию как в dns или мвидео Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 1 минуту назад, YanGus сказал: Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Ну я сначало хотел определиться с sql запросами потом уже реализовать это. А так можно сделать как на ajax так и на get. Думал передавать значение text (2 года) Вывод я уже сам сделал Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот к примеру запрос на вывод наличия товаров к конкретной категории. SELECT DISTINCT s.name, s.stock_status_id FROM " . DB_PREFIX . "stock_status s LEFT JOIN " . DB_PREFIX . "product p ON (s.stock_status_id=p.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category ptc ON (p.product_id=ptc.product_id) WHERE ptc.category_id = '" . (int)$category_id. "' AND s.language_id='" . (int)$this->config->get('config_language_id') . "' Сделайте свой по атрибутам с привязкой к категории. Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 19 минут назад, legioner26 сказал: К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Да я это знаю, спасибо, я вот думаю долго как над бд поработать, делать велосипед? кхм.... Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Этих фильтров по аттрибутам уже вагон Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я вот к примеру модифицировал стандартный фильтр ОС, ничем не хуже фильтрации по атрибутам, даже лучше и удобнее. Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 5 минут назад, legioner26 сказал: А по ID не вариант фильтровать ))) ? Передаете выбранные атрибуты через IN В том то и дело, что мне надо фильтровать по аттрибутам Чтобы узнать id товаров которые нужно мне вывести...SELECT * FROM oc_product_attribute tt WHERE tt.text IN ('2 года', '16МП') Эта запись аналогична Or а мне надо чисто через AND Есть идеи? Если переделать стандартный фильтр, то как лучше? Кстате, стандартный модуль Фильтр чет не робит у меня Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Посмотрите модель getProducts, как она устроена и сделайте на основе свое. 1 Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Посмотрите модель getProducts, как она устроена и сделайте на основе свое. Я так и делаю) Только там нет фильтра по аттрибутам я там пилю и вот столкнулся проблемой, которую описал выше Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории, описание, имя, цены продукта и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Уловили мысль ? Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. 1 Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 5 минут назад, legioner26 сказал: Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Можно Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 3 минуты назад, legioner26 сказал: Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. ))) Просто хочу сделать фильтрацию как в dns или мвидео Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 1 минуту назад, YanGus сказал: Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Ну я сначало хотел определиться с sql запросами потом уже реализовать это. А так можно сделать как на ajax так и на get. Думал передавать значение text (2 года) Вывод я уже сам сделал Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот к примеру запрос на вывод наличия товаров к конкретной категории. SELECT DISTINCT s.name, s.stock_status_id FROM " . DB_PREFIX . "stock_status s LEFT JOIN " . DB_PREFIX . "product p ON (s.stock_status_id=p.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category ptc ON (p.product_id=ptc.product_id) WHERE ptc.category_id = '" . (int)$category_id. "' AND s.language_id='" . (int)$this->config->get('config_language_id') . "' Сделайте свой по атрибутам с привязкой к категории. Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 19 минут назад, legioner26 сказал: К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Да я это знаю, спасибо, я вот думаю долго как над бд поработать, делать велосипед? кхм.... Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Этих фильтров по аттрибутам уже вагон Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 5 минут назад, legioner26 сказал: А по ID не вариант фильтровать ))) ? Передаете выбранные атрибуты через IN В том то и дело, что мне надо фильтровать по аттрибутам Чтобы узнать id товаров которые нужно мне вывести...SELECT * FROM oc_product_attribute tt WHERE tt.text IN ('2 года', '16МП') Эта запись аналогична Or а мне надо чисто через AND Есть идеи? Если переделать стандартный фильтр, то как лучше? Кстате, стандартный модуль Фильтр чет не робит у меня Надіслати Поділитися на інших сайтах More sharing options...
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Посмотрите модель getProducts, как она устроена и сделайте на основе свое. 1 Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Посмотрите модель getProducts, как она устроена и сделайте на основе свое. Я так и делаю) Только там нет фильтра по аттрибутам я там пилю и вот столкнулся проблемой, которую описал выше Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории, описание, имя, цены продукта и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Уловили мысль ? Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. 1 Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 5 минут назад, legioner26 сказал: Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Можно Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 3 минуты назад, legioner26 сказал: Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. ))) Просто хочу сделать фильтрацию как в dns или мвидео Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 1 минуту назад, YanGus сказал: Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Ну я сначало хотел определиться с sql запросами потом уже реализовать это. А так можно сделать как на ajax так и на get. Думал передавать значение text (2 года) Вывод я уже сам сделал Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот к примеру запрос на вывод наличия товаров к конкретной категории. SELECT DISTINCT s.name, s.stock_status_id FROM " . DB_PREFIX . "stock_status s LEFT JOIN " . DB_PREFIX . "product p ON (s.stock_status_id=p.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category ptc ON (p.product_id=ptc.product_id) WHERE ptc.category_id = '" . (int)$category_id. "' AND s.language_id='" . (int)$this->config->get('config_language_id') . "' Сделайте свой по атрибутам с привязкой к категории. Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 19 минут назад, legioner26 сказал: К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Да я это знаю, спасибо, я вот думаю долго как над бд поработать, делать велосипед? кхм.... Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Этих фильтров по аттрибутам уже вагон Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Посмотрите модель getProducts, как она устроена и сделайте на основе свое. Я так и делаю) Только там нет фильтра по аттрибутам я там пилю и вот столкнулся проблемой, которую описал выше Надіслати Поділитися на інших сайтах More sharing options...
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории, описание, имя, цены продукта и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Уловили мысль ? Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. 1 Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 5 минут назад, legioner26 сказал: Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Можно Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 3 минуты назад, legioner26 сказал: Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. ))) Просто хочу сделать фильтрацию как в dns или мвидео Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 1 минуту назад, YanGus сказал: Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Ну я сначало хотел определиться с sql запросами потом уже реализовать это. А так можно сделать как на ajax так и на get. Думал передавать значение text (2 года) Вывод я уже сам сделал Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот к примеру запрос на вывод наличия товаров к конкретной категории. SELECT DISTINCT s.name, s.stock_status_id FROM " . DB_PREFIX . "stock_status s LEFT JOIN " . DB_PREFIX . "product p ON (s.stock_status_id=p.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category ptc ON (p.product_id=ptc.product_id) WHERE ptc.category_id = '" . (int)$category_id. "' AND s.language_id='" . (int)$this->config->get('config_language_id') . "' Сделайте свой по атрибутам с привязкой к категории. Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 19 минут назад, legioner26 сказал: К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Да я это знаю, спасибо, я вот думаю долго как над бд поработать, делать велосипед? кхм.... Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Этих фильтров по аттрибутам уже вагон Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Уловили мысль ? Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. 1 Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 5 минут назад, legioner26 сказал: Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Можно Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 3 минуты назад, legioner26 сказал: Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. ))) Просто хочу сделать фильтрацию как в dns или мвидео Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 1 минуту назад, YanGus сказал: Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Ну я сначало хотел определиться с sql запросами потом уже реализовать это. А так можно сделать как на ajax так и на get. Думал передавать значение text (2 года) Вывод я уже сам сделал Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот к примеру запрос на вывод наличия товаров к конкретной категории. SELECT DISTINCT s.name, s.stock_status_id FROM " . DB_PREFIX . "stock_status s LEFT JOIN " . DB_PREFIX . "product p ON (s.stock_status_id=p.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category ptc ON (p.product_id=ptc.product_id) WHERE ptc.category_id = '" . (int)$category_id. "' AND s.language_id='" . (int)$this->config->get('config_language_id') . "' Сделайте свой по атрибутам с привязкой к категории. Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 19 минут назад, legioner26 сказал: К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Да я это знаю, спасибо, я вот думаю долго как над бд поработать, делать велосипед? кхм.... Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Этих фильтров по аттрибутам уже вагон Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. 1 Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 5 минут назад, legioner26 сказал: Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Можно Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 3 минуты назад, legioner26 сказал: Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. ))) Просто хочу сделать фильтрацию как в dns или мвидео Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 1 минуту назад, YanGus сказал: Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Ну я сначало хотел определиться с sql запросами потом уже реализовать это. А так можно сделать как на ajax так и на get. Думал передавать значение text (2 года) Вывод я уже сам сделал Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот к примеру запрос на вывод наличия товаров к конкретной категории. SELECT DISTINCT s.name, s.stock_status_id FROM " . DB_PREFIX . "stock_status s LEFT JOIN " . DB_PREFIX . "product p ON (s.stock_status_id=p.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category ptc ON (p.product_id=ptc.product_id) WHERE ptc.category_id = '" . (int)$category_id. "' AND s.language_id='" . (int)$this->config->get('config_language_id') . "' Сделайте свой по атрибутам с привязкой к категории. Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 19 минут назад, legioner26 сказал: К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Да я это знаю, спасибо, я вот думаю долго как над бд поработать, делать велосипед? кхм.... Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Этих фильтров по аттрибутам уже вагон Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 5 минут назад, legioner26 сказал: Вот вам выборка к примеру по ID. Там в дальнейшем цепляете еще ID категории и т.д. http://prntscr.com/jbxe6n SELECT * FROM `oc_product_attribute` pa LEFT JOIN `oc_product` p ON (pa.product_id=p.product_id) WHERE pa.attribute_id IN (121,119,124) Можно Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Надіслати Поділитися на інших сайтах More sharing options...
YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 3 минуты назад, legioner26 сказал: Я отказался пока внедрять в стандартный модиф фильтрацию по аттр. Так как атрибуты изначально не предназначены для фильтра. ))) Просто хочу сделать фильтрацию как в dns или мвидео Надіслати Поділитися на інших сайтах More sharing options...
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 1 минуту назад, YanGus сказал: Можно ли с вами связаться? Вы не поняли, мне надо строго сделать фильтрацию товаров по аттрибутам, в вашем случае вы вывели товары где присутствуют id аттрибутов, но у них то разные значения) Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Ну я сначало хотел определиться с sql запросами потом уже реализовать это. А так можно сделать как на ajax так и на get. Думал передавать значение text (2 года) Вывод я уже сам сделал Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот к примеру запрос на вывод наличия товаров к конкретной категории. SELECT DISTINCT s.name, s.stock_status_id FROM " . DB_PREFIX . "stock_status s LEFT JOIN " . DB_PREFIX . "product p ON (s.stock_status_id=p.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category ptc ON (p.product_id=ptc.product_id) WHERE ptc.category_id = '" . (int)$category_id. "' AND s.language_id='" . (int)$this->config->get('config_language_id') . "' Сделайте свой по атрибутам с привязкой к категории. Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 19 минут назад, legioner26 сказал: К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Да я это знаю, спасибо, я вот думаю долго как над бд поработать, делать велосипед? кхм.... Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Этих фильтров по аттрибутам уже вагон Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 2 минуты назад, legioner26 сказал: Ппц смотрите Вы к примеру через аякс там или просто, передаете включенные чекбоксы через GET к примеру в которых в value содержатся ID атрибутов. Или Вам нужно просто пока что вывести все значения в категории ? Ну я сначало хотел определиться с sql запросами потом уже реализовать это. А так можно сделать как на ajax так и на get. Думал передавать значение text (2 года) Вывод я уже сам сделал Надіслати Поділитися на інших сайтах More sharing options...
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Вот к примеру запрос на вывод наличия товаров к конкретной категории. SELECT DISTINCT s.name, s.stock_status_id FROM " . DB_PREFIX . "stock_status s LEFT JOIN " . DB_PREFIX . "product p ON (s.stock_status_id=p.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category ptc ON (p.product_id=ptc.product_id) WHERE ptc.category_id = '" . (int)$category_id. "' AND s.language_id='" . (int)$this->config->get('config_language_id') . "' Сделайте свой по атрибутам с привязкой к категории. Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 19 минут назад, legioner26 сказал: К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Да я это знаю, спасибо, я вот думаю долго как над бд поработать, делать велосипед? кхм.... Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Этих фильтров по аттрибутам уже вагон Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 19 минут назад, legioner26 сказал: К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Да я это знаю, спасибо, я вот думаю долго как над бд поработать, делать велосипед? кхм.... Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Этих фильтров по аттрибутам уже вагон Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
YanGus Опубліковано: 30 квітня 2018 Автор Share Опубліковано: 30 квітня 2018 19 минут назад, legioner26 сказал: К примеру attribute = []; $('input[name^=\'attribute\']:checked').each(function(element) { attribute.push(this.value); }); attribute =attribute.join(','); И передаете все ID в запрос Да я это знаю, спасибо, я вот думаю долго как над бд поработать, делать велосипед? кхм.... Надіслати Поділитися на інших сайтах More sharing options...
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Этих фильтров по аттрибутам уже вагон Надіслати Поділитися на інших сайтах More sharing options... legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
legioner26 Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 Я бы не стал заморачиваться Или же если для своих проектов только Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Фильтр по аттрибутам [Разработка]
Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Братан, ты пишешь ТЗ конечно, я весь мозг сломал пытаясь понять что нужно )) Давай я начну предлагать, ты говори что не так. Если я правильно понял, то нужно по attribute_id (или по text) найти все товары, которые содержат 2+ атрибутов. Ниже вариант, что в нем не так? SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = "16GB" OR `text` = "4" GROUP BY `product_id` Выведет тебе все product_id, которые удовлетворяют установленным условиям (содержат атрибуты в виде текста) и сгруппирует их. Потом приджоинишь еще таблицу с названием продуктов, если нужно - и все. Или вариант с IN, будет проще кодить. SELECT `product_id` FROM `oc_product_attribute` WHERE (`text` IN ("16GB", "4")) GROUP BY `product_id`; Змінено 30 квітня 2018 користувачем Gorman 1 Надіслати Поділитися на інших сайтах More sharing options... Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Gorman Опубліковано: 30 квітня 2018 Share Опубліковано: 30 квітня 2018 (змінено) Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Змінено 30 квітня 2018 користувачем Gorman Надіслати Поділитися на інших сайтах More sharing options... YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
YanGus Опубліковано: 1 травня 2018 Автор Share Опубліковано: 1 травня 2018 (змінено) 23 часа назад, Gorman сказал: Такс, прочитал еще пару раз, кажется, понял проблему лучше )) В моем примере выше выберутся все товары, даже те, которые соответствуют только одному атрибуту. Порылся в интернете, одно из решений из стаковерфлоу. Выглядит жестко, как масштабировать - вопрос. Не знаю насколько будет тяжко базе, надо тестить. Ну, и может кто-то более правильный вариант подскажет. Ибо сначала показалось, что задача вообще примитивная, на деле не такая уж Попробуйте, в общем. Возможно, натолкнет на мысли. Запрос для двух атрибутов. SELECT DISTINCT(`product_id`) FROM `oc_product_attribute` WHERE `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'Intel') AND `product_id` IN (SELECT `product_id` FROM `oc_product_attribute` WHERE `text` = 'E-ATX') Я это не понимаю конечно, но спасибо) Ох ж этот opencart, за все надо платить или мучиться Притом, что проект для обучения.... Змінено 1 травня 2018 користувачем YanGus Надіслати Поділитися на інших сайтах More sharing options...
HyperLabTeam Опубліковано: 1 травня 2018 Share Опубліковано: 1 травня 2018 1 час назад, YanGus сказал: за все надо платить или мучиться Что мучится что платить одно -иначе только в раю Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts