Не работает запрос на вывод книг по выбранным магазинам. В чем может быть ошибка? - MySQL
Формулировка задачи:
Имеются 3 таблицы: table_products - книги, shops - магазины, и shop_book - таблица, связывающая эти две.
На моем сайте есть поиск по параметрам: цена, жанры и магазины. Запрос должен выводить книги, которые имеются в магазинах, которые пользователь отметил на сайте. В чем может быть ошибка запроса? Подскажите.
if ($_GET["genre"]) { $check_genre = implode(',',$_GET["genre"]); } if ($_GET["name_shop"]) { $check_shop = implode(',',$_GET["name_shop"]); } $start_price = (int)$_GET["start_price"]; /*int пропускает только цифры*/ $end_price = (int)$_GET["end_price"]; /*одно из 3 проверяется*/ if (!empty($check_genre) OR !empty($end_price) OR !empty($check_shop)) {/*а здесь уже точно, что выбрано (части запроса))*/ if (!empty($check_genre)) $query_genre = " AND genre_id IN($check_genre)"; if (!empty($end_price)) $query_price = " AND price BETWEEN $start_price AND $end_price"; if (!empty($check_shop)) $query_shop = " shop_id IN($check_shop)"; } $result = mysql_query("SELECT * FROM (SELECT products_id FROM shop_book AS sb WHERE $query_shop JOIN table_products AS pr ON pr.products_id = sb.products_id) WHERE visible='1' $query_genre $query_price ORDER BY products_id DESC",$link);
Решение задачи: «Не работает запрос на вывод книг по выбранным магазинам. В чем может быть ошибка?»
textual
Листинг программы
$result = mysql_query("SELECT shop_id, SUBSTRING(`name_shop`, 1, 28) AS `name_shop` FROM shops",$link);
Объяснение кода листинга программы
- Подключается библиотека MySQL.
- Формируется SQL-запрос с помощью функции
mysql_query()
. - В запросе используется функция
SUBSTRING()
, которая позволяет выбрать подстроку из поляname_shop
длиной не более 28 символов. - Результат запроса сохраняется в переменной
$result
. - Полученный результат будет использоваться в дальнейшем для работы с данными.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д