esistema1 Опубликовано 16 сентября, 2020 Жалоба Поделиться Опубликовано 16 сентября, 2020 Всем доброе утро! На сайте сейчас есть фильтр по сезону через свойства товара (осень зима...). Я хочу сделать все товары например сезона "осень" на одной странице. Делаю в файле products.php следующую запись if(isset($filter['discounted777'])) $discounted777_filter = $this->db->placehold('AND (SELECT * FROM __options WHERE 'value' LIKE '%осень%') ', intval($filter['discounted777'])); Этот sql запрос через phpmyadmin выводит товары которые соответствуют условию, но на сайте пишет нет товаров. в htacess пишу RewriteRule ^sale777/?$ index.php?module=ProductsView&mode=sale777 [L,QSA] Таким образом должны появиться товары на странице /sale777, но товары не появляются. Помогите пожалуйста исправить запрос. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 16 сентября, 2020 Жалоба Поделиться Опубликовано 16 сентября, 2020 В запросе совсем неверно - кавычки внутри кавычек.Попробуйте внешние кавычки поменять на двойные... Цитата Ссылка на сообщение Поделиться на другие сайты
esistema1 Опубликовано 16 сентября, 2020 Автор Жалоба Поделиться Опубликовано 16 сентября, 2020 $discounted777_filter = $this->db->placehold("AND (SELECT * FROM __options po WHERE 'value' LIKE '%осень%') ", intval($filter['discounted777'])); Так тоже не работает.. Цитата Ссылка на сообщение Поделиться на другие сайты
esistema1 Опубликовано 16 сентября, 2020 Автор Жалоба Поделиться Опубликовано 16 сентября, 2020 И так тоже не работает $discounted777_filter = $this->db->placehold("AND (SELECT 1 FROM __options po WHERE po.value LIKE '%осень%') = ?", intval($filter['discounted777'])); Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 16 сентября, 2020 Жалоба Поделиться Опубликовано 16 сентября, 2020 Если Вы работаете методом бездумной вставки похожего кода, то так гадать можно долго.Надо проверять все детали. Для этого либо самому разобраться в основах, чтоб хоть немного понимать, либо просить специалиста сделать за небольшую денежку... Цитата Ссылка на сообщение Поделиться на другие сайты
esistema1 Опубликовано 16 сентября, 2020 Автор Жалоба Поделиться Опубликовано 16 сентября, 2020 Если Вы работаете методом бездумной вставки похожего кода, то так гадать можно долго.Надо проверять все детали. Для этого либо самому разобраться в основах, чтоб хоть немного понимать, либо просить специалиста сделать за небольшую денежку... Хотелось бы все таки самому разобраться (либо с помощью специалистов). А как тестировать и проверять этот запрос? Через phpmyadmin запрос который выводит то что мне надо выглядит вот так SELECT * FROM `s_options` WHERE `value` LIKE '%осень%' ORDER BY `value` ASC Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 16 сентября, 2020 Жалоба Поделиться Опубликовано 16 сентября, 2020 Хотелось бы все таки самому разобраться (либо с помощью специалистов). А как тестировать и проверять этот запрос? Через phpmyadmin запрос который выводит то что мне надо выглядит вот так SELECT * FROM `s_options` WHERE `value` LIKE '%осень%' ORDER BY `value` ASC if(isset($filter['discounted777'])) $discounted777_filter = $this->db->placehold('AND (SELECT * FROM __options WHERE value LIKE '%осень%') ', intval($filter['discounted777'])); Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 16 сентября, 2020 Жалоба Поделиться Опубликовано 16 сентября, 2020 alexivchenko, Вы проверяли свой совет хоть чуть-чуть? Не догадываетесь, что там как минимум одна серьезная ошибка? Хотелось бы все таки самому разобраться (либо с помощью специалистов). А как тестировать и проверять этот запрос? Выводить живьем текст запроса на экран, смотреть и проверять... Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 16 сентября, 2020 Жалоба Поделиться Опубликовано 16 сентября, 2020 Хотелось бы все таки самому разобраться (либо с помощью специалистов). А как тестировать и проверять этот запрос? Через phpmyadmin запрос который выводит то что мне надо выглядит вот так SELECT * FROM `s_options` WHERE `value` LIKE '%осень%' ORDER BY `value` ASC if(isset($filter['discounted777'])) $discounted777_filter = $this->db->placehold("AND p.id in (SELECT product_id FROM __options WHERE value LIKE '%осень%')", intval($filter['discounted777'])); Цитата Ссылка на сообщение Поделиться на другие сайты
esistema1 Опубликовано 17 сентября, 2020 Автор Жалоба Поделиться Опубликовано 17 сентября, 2020 (изменено) Этот код выводит все товары магазина, не фильтрует... Уточнение: код выводит товары из фильтра, только товаров выводится на 7 страниц, а показывается 38, с 8 страницы пишет товары не найдены... Изменено 17 сентября, 2020 пользователем esistema1 Цитата Ссылка на сообщение Поделиться на другие сайты
esistema1 Опубликовано 17 сентября, 2020 Автор Жалоба Поделиться Опубликовано 17 сентября, 2020 Разобрался! Спасибо большое за помощь! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.