Не работает запрос на вывод книг по выбранным магазинам. В чем может быть ошибка? - 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. - Полученный результат будет использоваться в дальнейшем для работы с данными.