jonny008 Posted December 6, 2017 Report Share Posted December 6, 2017 Здравствуйте. Есть необходимость выгрузить товары некоторых категории в XML Для этого создал в таблице s_categories столбец efind Далее в Categories.php в запросе добавил c.efind // Выбираем все категории $query = $this->db->placehold("SELECT c.id, c.parent_id, c.name, c.description, c.url, c.efind, c.meta_title, c.meta_keywords, c.meta_description, c.image, c.visible, c.position FROM __categories c ORDER BY c.parent_id, c.name"); Далее в шаблоне админки и в контроллерах. и в самом файле efind.php // Товары $simpla->db->query("SET SQL_BIG_SELECTS=1"); // Товары $simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, c.efind, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id , i.filename as image FROM __variants v INNER JOIN __categories c LEFT JOIN __products p ON v.product_id=p.id LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1) LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1) WHERE p.visible AND c.efind >0 AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position "); Всё на подобии выгрузки в ЯМ. По такому запросы выводятся все товары. Я в запросах полный ноль. Quote Link to post Share on other sites
Solution Пастухов Posted December 6, 2017 Solution Report Share Posted December 6, 2017 Надо вместо INNER JOIN __categories c что-то типа LEFT JOIN __categories c ON c.id=pc.category_id И, скорее всего, в другом месте запроса... Quote Link to post Share on other sites
jonny008 Posted December 6, 2017 Author Report Share Posted December 6, 2017 Надо вместоINNER JOIN __categories c что-то типаLEFT JOIN __categories c ON c.id=pc.category_id И, скорее всего, в другом месте запроса...Спасибо большое. Заработало так: // Товары $simpla->db->query("SET SQL_BIG_SELECTS=1"); // Товары $simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, c.efind, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id , i.filename as image FROM __variants v LEFT JOIN __products p ON v.product_id=p.id LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1) LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1) LEFT JOIN __categories c ON c.id=pc.category_id WHERE p.visible AND c.efind >0 AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position "); Quote Link to post Share on other sites
DyxLEzz Posted December 6, 2017 Report Share Posted December 6, 2017 Ребята, я новичок на форуме, как задавать вопрос? Не найду определенную кнопку Quote Link to post Share on other sites
Gruzin Posted December 6, 2017 Report Share Posted December 6, 2017 Ребята, я новичок на форуме, как задавать вопрос? Не найду определенную кнопкуЗаходите в нужную тему и нажимаете кнопку Новая тема Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.