[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: У вас ошибка в вашем синтаксисе SQL
Страницы: 1, 2
Вадим Бова
Уважаемые коллеги, при написании запроса
$query = "SELECT * FROM goods
INNER JOIN product_category
ON goods.goods_category = product_category.category_id
WHERE goods_category = $category AND visible='1'";
Выдает ошибку
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND visible='1')' at line 4

хотя, если я меняю переменную $category на число все ОК, проверил - в переменную приходит число. В чем прикол не могу понять
Игорь_Vasinsky
$query = "
SELECT * FROM `goods`
INNER JOIN `product_category` ON `goods`.`goods_category` =`product_category`.`category_id`
WHERE `goods_category` = "
.(int)$category." AND `visible`=1";


коллега, это видимо строка, её просто так пихать опасно.

т.е. если это строка. а если это число - то приведите к типу (int)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Вадим Бова
$category = abs((int)$_GET['category']); это не строка
при распечатки $category показывает число
Вадим Бова
и все равно пишет
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'int) AND visible='1'' at line 4
Игорь_Vasinsky
а как запрос щас твой выглядит?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Вадим Бова
$query = "SELECT * FROM goods
INNER JOIN product_category
ON goods.goods_category = product_category.category_id
WHERE goods_category = $category AND visible='1'";

прописывал и так (int)$category суть ошибки не меняет
TMake
Цитата (Вадим Бова @ 8.04.2016 - 13:51)
прописывал и так (int)$category суть ошибки не меняет

тебе Игорь уже написал что нужно сделать, исправь свой запрос.
Вадим Бова
Цитата (TMake @ 8.04.2016 - 13:58)
Цитата (Вадим Бова @ 8.04.2016 - 13:51)
прописывал и так (int)$category суть ошибки не меняет

тебе Игорь уже написал что нужно сделать, исправь свой запрос.

в переменную $category приходит число, специально распечатывал - проверял.
в контролере она прописана как $category = abs((int)$_GET['category']);
Как еще исправить запрос?!
Kusss
$query = "SELECT ....";
echo '<br>'.$query;
die();
Результат сюда.
Вадим Бова
Цитата (Kusss @ 8.04.2016 - 14:12)
$query = "SELECT ....";
echo '<br>'.$query;
die();
Результат сюда.

выдает: SELECT * FROM goods INNER JOIN product_category ON goods.goods_category = product_category.category_id WHERE goods_category = AND visible='1'
Игорь_Vasinsky
убери от туда (int)

Цитата
product_category.category_id WHERE goods_category =

нет там твоего числа, которое ты видишь

abs может вернуть как целое число, так и float

поэтому делай так

$query = "
SELECT * FROM `goods`
INNER JOIN `product_category` ON `goods`.`goods_category` =`product_category`.`category_id`
WHERE `goods_category` = '"
.$category."' AND `visible`=1";


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Вадим Бова
Спасибо большое, проблему не решил, но направления для решения получил wink.gif

при таком написании
WHERE `goods_category` = '".(int)$category."' AND `visible`=1";
выдает такое
SELECT * FROM goods INNER JOIN product_category ON goods.goods_category = product_category.category_id WHERE `goods_category` = '0' AND `visible`=1
TMake
Вадим Бова
пока ты будешь постить куски запроса, ни кто не скажет в чем проблема, чуть больше инфы кинь.
Вадим Бова
Цитата (TMake @ 8.04.2016 - 14:36)
Вадим Бова
пока ты будешь постить куски запроса, ни кто не скажет в чем проблема, чуть больше инфы кинь.

function products($category){
$query = "SELECT * FROM goods
INNER JOIN product_category
ON goods.goods_category = product_category.category_id
WHERE goods_category` = $category AND visible =1";
echo '<br>'.$query;
die();

$res = mysql_query($query) or die(mysql_error());

$products = array();
$key=1;
while ($row = mysql_fetch_assoc($res)) {
if(!$row['Category_st']){

$products[$row['Category_id']] [name] = $row['Category_name'];
$products[$row['Category_id']] [options] = $row['Category_options'];
$products[$row['Category_id']] [cat_way] = $row['Category_way'];
$products[$row['Category_id']][item][$key][goods_id] = $row['goods_id'];
$products[$row['Category_id']][item][$key][img_mini] = $row['img_mini'];
$products[$row['Category_id']][item][$key][price]= $row['price'];
$products[$row['Category_id']][item][$key][index] = $row['index'];
$products[$row['Category_id']][item][$key][img_big] = $row['img_big'];
$key++;
}

}
return $products;
}


в контролере
$products = products($category);
$category = abs((int)$_GET['category']);
Игорь_Vasinsky
Вадим Бова
ну ты самое интересное опять не показал)))

формирование $category

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.