petyann Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Стоит Стоит Opencart 3.0.3.8 (rs.2). Подскажите, как можно вывести сортировку по атрибуту товара? Атрибуты, как я понимаю, находятся в базе данных в таблице oc_product_attribute. Нужный attribute_id, по которому требуется сделать сортировку — 89. Я так понимаю, что в где-то в файле ok/catalog/model/catalog/product.php нужно что-то сделать? Но что и как? Надіслати Поділитися на інших сайтах More sharing options...
Dimasscus Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Вы сначала обьясните как вы сортировку по атрибуту себе представили. У этого атрибута какие значения? Надіслати Поділитися на інших сайтах More sharing options...
Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 то есть тот ваш "power", который вы пытались затулить в сортиоровку - это все-таки атрибут товара, а не поле в таблице товара? Надіслати Поділитися на інших сайтах More sharing options... petyann Опубліковано: 17 грудня 2021 Автор Share Опубліковано: 17 грудня 2021 5 минут назад, Dimasscus сказал: Вы сначала обьясните как вы сортировку по атрибуту себе представили. У этого атрибута какие значения? У этого атрибута целые числовые: 7, 9, 12, 55, 75, 100, 200. Надіслати Поділитися на інших сайтах More sharing options... spectre Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 7 минут назад, petyann сказал: У этого атрибута целые числовые: 7, 9, 12, 55, 75, 100, 200. вам нужно сделать скрипт который будет копировать значения атрибута в какое-то поле в товаре существующее или создать новое - а уже потом сортировать по нему таблицу атрибутов дергать это больновато Надіслати Поділитися на інших сайтах More sharing options... petyann Опубліковано: 17 грудня 2021 Автор Share Опубліковано: 17 грудня 2021 14 минут назад, spectre сказал: вам нужно сделать скрипт который будет копировать значения атрибута в какое-то поле в товаре существующее или создать новое - а уже потом сортировать по нему таблицу атрибутов дергать это больновато Если сделать через новый столбец в самой базе данных (ввести их даже вручную) и по нему сортировать, то это не проблема. Просто думал, что можно как-то проще подключить oc_product_attribute и сортировать через attribute_id. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Можно и через атрибуты, конечно, просто такой запрос, возможно, будет сильно тормозить. Если много товаров и много атрибутов - записей в таблице товарных атрибутов может быть очень много и время на запрос может увеличиться непомерно. Поэтому, правильный совет, быстрее будет скопировать в какое-то поле товара и по нему. Ну как power)) 2 Надіслати Поділитися на інших сайтах More sharing options... Shureg Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 58 минут назад, petyann сказал: Я так понимаю, что в где-то в файле ok/catalog/model/catalog/product.php нужно что-то сделать? Но что и как? Переписать (или сделать альтернативный вариант) getProducts с присоединением таблиц атрибутов и сортировкой по ним. Выбирать может долго. 2 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Если немного товаров и атрибутов, не будет тормозить, тогда вот так можно. В запросе в модели getProducts добавить через запятую в основной SELECT еще одно "поле" - вложенный SELECT: (SELECT CAST(pa.text AS UNSIGNED) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = <ваш attribute_id> AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS your_attr <ваш attribute_id> = 89 и добавить "your_attr" в массив возможных полей для сортировки ниже по тексту. Ну и в контроллере добавить в выпадающее эту сортировку по полю "your_attr" (без p) 1 Надіслати Поділитися на інших сайтах More sharing options... petyann Опубліковано: 17 грудня 2021 Автор Share Опубліковано: 17 грудня 2021 1 час назад, Prooksius сказал: Если немного товаров и атрибутов, не будет тормозить, тогда вот так можно. В запросе в модели getProducts добавить через запятую в основной SELECT еще одно "поле" - вложенный SELECT: (SELECT CAST(pa.text AS UNSIGNED) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = <ваш attribute_id> AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS your_attr <ваш attribute_id> = 89 и добавить "your_attr" в массив возможных полей для сортировки ниже по тексту. Ну и в контроллере добавить в выпадающее эту сортировку по полю "your_attr" (без p) Спасибо большое. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Только что, Prooksius сказал: там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. в таком случае таблицу над джойнить Или использовать CASE Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 6 минут назад, chukcha сказал: в таком случае таблицу над джойнить да собственно, оно и правильно что так отдает, по-другому я не знаю как.. Где непроставлено - пусть будет 0, раз это числовой параметр. А подзапрос тут мне кажется лучше, все товары в любом случае отобразятся. Пусть даже с незаполненным атрибутом. Да и сам подзапрос делается по полям primary key - должно быть быстро все. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 0) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr немного поменял чтобы если атрибут не заполнен, выдавало бы точно 0, а не NULL Хотя, это особо и не важно. А двойная сортировка, проверил, вроде все работает. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 ORDER BY (CASE WHEN desc_attr IS NOT NULL then desc_attr ELSE 222222222222) DESC 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 3 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Как можно вывести сортировку по атрибуту товара? (По attribute_id). Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
petyann Опубліковано: 17 грудня 2021 Автор Share Опубліковано: 17 грудня 2021 5 минут назад, Dimasscus сказал: Вы сначала обьясните как вы сортировку по атрибуту себе представили. У этого атрибута какие значения? У этого атрибута целые числовые: 7, 9, 12, 55, 75, 100, 200. Надіслати Поділитися на інших сайтах More sharing options...
spectre Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 7 минут назад, petyann сказал: У этого атрибута целые числовые: 7, 9, 12, 55, 75, 100, 200. вам нужно сделать скрипт который будет копировать значения атрибута в какое-то поле в товаре существующее или создать новое - а уже потом сортировать по нему таблицу атрибутов дергать это больновато Надіслати Поділитися на інших сайтах More sharing options... petyann Опубліковано: 17 грудня 2021 Автор Share Опубліковано: 17 грудня 2021 14 минут назад, spectre сказал: вам нужно сделать скрипт который будет копировать значения атрибута в какое-то поле в товаре существующее или создать новое - а уже потом сортировать по нему таблицу атрибутов дергать это больновато Если сделать через новый столбец в самой базе данных (ввести их даже вручную) и по нему сортировать, то это не проблема. Просто думал, что можно как-то проще подключить oc_product_attribute и сортировать через attribute_id. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Можно и через атрибуты, конечно, просто такой запрос, возможно, будет сильно тормозить. Если много товаров и много атрибутов - записей в таблице товарных атрибутов может быть очень много и время на запрос может увеличиться непомерно. Поэтому, правильный совет, быстрее будет скопировать в какое-то поле товара и по нему. Ну как power)) 2 Надіслати Поділитися на інших сайтах More sharing options... Shureg Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 58 минут назад, petyann сказал: Я так понимаю, что в где-то в файле ok/catalog/model/catalog/product.php нужно что-то сделать? Но что и как? Переписать (или сделать альтернативный вариант) getProducts с присоединением таблиц атрибутов и сортировкой по ним. Выбирать может долго. 2 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Если немного товаров и атрибутов, не будет тормозить, тогда вот так можно. В запросе в модели getProducts добавить через запятую в основной SELECT еще одно "поле" - вложенный SELECT: (SELECT CAST(pa.text AS UNSIGNED) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = <ваш attribute_id> AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS your_attr <ваш attribute_id> = 89 и добавить "your_attr" в массив возможных полей для сортировки ниже по тексту. Ну и в контроллере добавить в выпадающее эту сортировку по полю "your_attr" (без p) 1 Надіслати Поділитися на інших сайтах More sharing options... petyann Опубліковано: 17 грудня 2021 Автор Share Опубліковано: 17 грудня 2021 1 час назад, Prooksius сказал: Если немного товаров и атрибутов, не будет тормозить, тогда вот так можно. В запросе в модели getProducts добавить через запятую в основной SELECT еще одно "поле" - вложенный SELECT: (SELECT CAST(pa.text AS UNSIGNED) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = <ваш attribute_id> AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS your_attr <ваш attribute_id> = 89 и добавить "your_attr" в массив возможных полей для сортировки ниже по тексту. Ну и в контроллере добавить в выпадающее эту сортировку по полю "your_attr" (без p) Спасибо большое. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Только что, Prooksius сказал: там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. в таком случае таблицу над джойнить Или использовать CASE Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 6 минут назад, chukcha сказал: в таком случае таблицу над джойнить да собственно, оно и правильно что так отдает, по-другому я не знаю как.. Где непроставлено - пусть будет 0, раз это числовой параметр. А подзапрос тут мне кажется лучше, все товары в любом случае отобразятся. Пусть даже с незаполненным атрибутом. Да и сам подзапрос делается по полям primary key - должно быть быстро все. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 0) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr немного поменял чтобы если атрибут не заполнен, выдавало бы точно 0, а не NULL Хотя, это особо и не важно. А двойная сортировка, проверил, вроде все работает. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 ORDER BY (CASE WHEN desc_attr IS NOT NULL then desc_attr ELSE 222222222222) DESC 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 3 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Как можно вывести сортировку по атрибуту товара? (По attribute_id). Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
petyann Опубліковано: 17 грудня 2021 Автор Share Опубліковано: 17 грудня 2021 14 минут назад, spectre сказал: вам нужно сделать скрипт который будет копировать значения атрибута в какое-то поле в товаре существующее или создать новое - а уже потом сортировать по нему таблицу атрибутов дергать это больновато Если сделать через новый столбец в самой базе данных (ввести их даже вручную) и по нему сортировать, то это не проблема. Просто думал, что можно как-то проще подключить oc_product_attribute и сортировать через attribute_id. Надіслати Поділитися на інших сайтах More sharing options...
Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Можно и через атрибуты, конечно, просто такой запрос, возможно, будет сильно тормозить. Если много товаров и много атрибутов - записей в таблице товарных атрибутов может быть очень много и время на запрос может увеличиться непомерно. Поэтому, правильный совет, быстрее будет скопировать в какое-то поле товара и по нему. Ну как power)) 2 Надіслати Поділитися на інших сайтах More sharing options... Shureg Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 58 минут назад, petyann сказал: Я так понимаю, что в где-то в файле ok/catalog/model/catalog/product.php нужно что-то сделать? Но что и как? Переписать (или сделать альтернативный вариант) getProducts с присоединением таблиц атрибутов и сортировкой по ним. Выбирать может долго. 2 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Если немного товаров и атрибутов, не будет тормозить, тогда вот так можно. В запросе в модели getProducts добавить через запятую в основной SELECT еще одно "поле" - вложенный SELECT: (SELECT CAST(pa.text AS UNSIGNED) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = <ваш attribute_id> AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS your_attr <ваш attribute_id> = 89 и добавить "your_attr" в массив возможных полей для сортировки ниже по тексту. Ну и в контроллере добавить в выпадающее эту сортировку по полю "your_attr" (без p) 1 Надіслати Поділитися на інших сайтах More sharing options... petyann Опубліковано: 17 грудня 2021 Автор Share Опубліковано: 17 грудня 2021 1 час назад, Prooksius сказал: Если немного товаров и атрибутов, не будет тормозить, тогда вот так можно. В запросе в модели getProducts добавить через запятую в основной SELECT еще одно "поле" - вложенный SELECT: (SELECT CAST(pa.text AS UNSIGNED) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = <ваш attribute_id> AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS your_attr <ваш attribute_id> = 89 и добавить "your_attr" в массив возможных полей для сортировки ниже по тексту. Ну и в контроллере добавить в выпадающее эту сортировку по полю "your_attr" (без p) Спасибо большое. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Только что, Prooksius сказал: там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. в таком случае таблицу над джойнить Или использовать CASE Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 6 минут назад, chukcha сказал: в таком случае таблицу над джойнить да собственно, оно и правильно что так отдает, по-другому я не знаю как.. Где непроставлено - пусть будет 0, раз это числовой параметр. А подзапрос тут мне кажется лучше, все товары в любом случае отобразятся. Пусть даже с незаполненным атрибутом. Да и сам подзапрос делается по полям primary key - должно быть быстро все. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 0) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr немного поменял чтобы если атрибут не заполнен, выдавало бы точно 0, а не NULL Хотя, это особо и не важно. А двойная сортировка, проверил, вроде все работает. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 ORDER BY (CASE WHEN desc_attr IS NOT NULL then desc_attr ELSE 222222222222) DESC 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 3 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Как можно вывести сортировку по атрибуту товара? (По attribute_id). Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Shureg Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 58 минут назад, petyann сказал: Я так понимаю, что в где-то в файле ok/catalog/model/catalog/product.php нужно что-то сделать? Но что и как? Переписать (или сделать альтернативный вариант) getProducts с присоединением таблиц атрибутов и сортировкой по ним. Выбирать может долго. 2 Надіслати Поділитися на інших сайтах More sharing options...
Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Если немного товаров и атрибутов, не будет тормозить, тогда вот так можно. В запросе в модели getProducts добавить через запятую в основной SELECT еще одно "поле" - вложенный SELECT: (SELECT CAST(pa.text AS UNSIGNED) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = <ваш attribute_id> AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS your_attr <ваш attribute_id> = 89 и добавить "your_attr" в массив возможных полей для сортировки ниже по тексту. Ну и в контроллере добавить в выпадающее эту сортировку по полю "your_attr" (без p) 1 Надіслати Поділитися на інших сайтах More sharing options... petyann Опубліковано: 17 грудня 2021 Автор Share Опубліковано: 17 грудня 2021 1 час назад, Prooksius сказал: Если немного товаров и атрибутов, не будет тормозить, тогда вот так можно. В запросе в модели getProducts добавить через запятую в основной SELECT еще одно "поле" - вложенный SELECT: (SELECT CAST(pa.text AS UNSIGNED) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = <ваш attribute_id> AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS your_attr <ваш attribute_id> = 89 и добавить "your_attr" в массив возможных полей для сортировки ниже по тексту. Ну и в контроллере добавить в выпадающее эту сортировку по полю "your_attr" (без p) Спасибо большое. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Только что, Prooksius сказал: там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. в таком случае таблицу над джойнить Или использовать CASE Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 6 минут назад, chukcha сказал: в таком случае таблицу над джойнить да собственно, оно и правильно что так отдает, по-другому я не знаю как.. Где непроставлено - пусть будет 0, раз это числовой параметр. А подзапрос тут мне кажется лучше, все товары в любом случае отобразятся. Пусть даже с незаполненным атрибутом. Да и сам подзапрос делается по полям primary key - должно быть быстро все. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 0) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr немного поменял чтобы если атрибут не заполнен, выдавало бы точно 0, а не NULL Хотя, это особо и не важно. А двойная сортировка, проверил, вроде все работает. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 ORDER BY (CASE WHEN desc_attr IS NOT NULL then desc_attr ELSE 222222222222) DESC 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 3 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Как можно вывести сортировку по атрибуту товара? (По attribute_id). Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
petyann Опубліковано: 17 грудня 2021 Автор Share Опубліковано: 17 грудня 2021 1 час назад, Prooksius сказал: Если немного товаров и атрибутов, не будет тормозить, тогда вот так можно. В запросе в модели getProducts добавить через запятую в основной SELECT еще одно "поле" - вложенный SELECT: (SELECT CAST(pa.text AS UNSIGNED) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = <ваш attribute_id> AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS your_attr <ваш attribute_id> = 89 и добавить "your_attr" в массив возможных полей для сортировки ниже по тексту. Ну и в контроллере добавить в выпадающее эту сортировку по полю "your_attr" (без p) Спасибо большое. Надіслати Поділитися на інших сайтах More sharing options...
Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Только что, Prooksius сказал: там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. в таком случае таблицу над джойнить Или использовать CASE Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 6 минут назад, chukcha сказал: в таком случае таблицу над джойнить да собственно, оно и правильно что так отдает, по-другому я не знаю как.. Где непроставлено - пусть будет 0, раз это числовой параметр. А подзапрос тут мне кажется лучше, все товары в любом случае отобразятся. Пусть даже с незаполненным атрибутом. Да и сам подзапрос делается по полям primary key - должно быть быстро все. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 0) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr немного поменял чтобы если атрибут не заполнен, выдавало бы точно 0, а не NULL Хотя, это особо и не важно. А двойная сортировка, проверил, вроде все работает. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 ORDER BY (CASE WHEN desc_attr IS NOT NULL then desc_attr ELSE 222222222222) DESC 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 3 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Как можно вывести сортировку по атрибуту товара? (По attribute_id). Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 Только что, Prooksius сказал: там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order. в таком случае таблицу над джойнить Или использовать CASE Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 6 минут назад, chukcha сказал: в таком случае таблицу над джойнить да собственно, оно и правильно что так отдает, по-другому я не знаю как.. Где непроставлено - пусть будет 0, раз это числовой параметр. А подзапрос тут мне кажется лучше, все товары в любом случае отобразятся. Пусть даже с незаполненным атрибутом. Да и сам подзапрос делается по полям primary key - должно быть быстро все. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 0) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr немного поменял чтобы если атрибут не заполнен, выдавало бы точно 0, а не NULL Хотя, это особо и не важно. А двойная сортировка, проверил, вроде все работает. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 ORDER BY (CASE WHEN desc_attr IS NOT NULL then desc_attr ELSE 222222222222) DESC 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 3 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Как можно вывести сортировку по атрибуту товара? (По attribute_id). Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 6 минут назад, chukcha сказал: в таком случае таблицу над джойнить да собственно, оно и правильно что так отдает, по-другому я не знаю как.. Где непроставлено - пусть будет 0, раз это числовой параметр. А подзапрос тут мне кажется лучше, все товары в любом случае отобразятся. Пусть даже с незаполненным атрибутом. Да и сам подзапрос делается по полям primary key - должно быть быстро все. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 0) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr немного поменял чтобы если атрибут не заполнен, выдавало бы точно 0, а не NULL Хотя, это особо и не важно. А двойная сортировка, проверил, вроде все работает. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 ORDER BY (CASE WHEN desc_attr IS NOT NULL then desc_attr ELSE 222222222222) DESC 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 3 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Как можно вывести сортировку по атрибуту товара? (По attribute_id). Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 0) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr немного поменял чтобы если атрибут не заполнен, выдавало бы точно 0, а не NULL Хотя, это особо и не важно. А двойная сортировка, проверил, вроде все работает. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 ORDER BY (CASE WHEN desc_attr IS NOT NULL then desc_attr ELSE 222222222222) DESC 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 3 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Налаштування та оптимізація Как можно вывести сортировку по атрибуту товара? (По attribute_id).
chukcha Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 ORDER BY (CASE WHEN desc_attr IS NOT NULL then desc_attr ELSE 222222222222) DESC 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 3 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Prooksius Опубліковано: 17 грудня 2021 Share Опубліковано: 17 грудня 2021 или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 3
Recommended Posts