Вадим Бова
8.04.2016 - 12:59
Уважаемые коллеги, при написании запроса
$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
8.04.2016 - 13:09
$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
Вадим Бова
8.04.2016 - 13:35
$category = abs((int)$_GET['category']); это не строка
при распечатки $category показывает число
Вадим Бова
8.04.2016 - 13:42
и все равно пишет
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
8.04.2016 - 13:47
а как запрос щас твой выглядит?
_____________
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
Вадим Бова
8.04.2016 - 13:51
$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 суть ошибки не меняет
Цитата (Вадим Бова @ 8.04.2016 - 13:51) |
прописывал и так (int)$category суть ошибки не меняет |
тебе Игорь уже написал что нужно сделать, исправь свой запрос.
Вадим Бова
8.04.2016 - 14:04
Цитата (TMake @ 8.04.2016 - 13:58) |
Цитата (Вадим Бова @ 8.04.2016 - 13:51) | прописывал и так (int)$category суть ошибки не меняет |
тебе Игорь уже написал что нужно сделать, исправь свой запрос.
|
в переменную $category приходит число, специально распечатывал - проверял.
в контролере она прописана как $category = abs((int)$_GET['category']);
Как еще исправить запрос?!
$query = "SELECT ....";
echo '<br>'.$query;
die();
Результат сюда.
Вадим Бова
8.04.2016 - 14:17
Цитата (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
8.04.2016 - 14:18
убери от туда (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
Вадим Бова
8.04.2016 - 14:28
Спасибо большое, проблему не решил, но направления для решения получил
при таком написании
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
Вадим Бова
пока ты будешь постить куски запроса, ни кто не скажет в чем проблема, чуть больше инфы кинь.
Вадим Бова
8.04.2016 - 14:47
Цитата (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
8.04.2016 - 14:48
Вадим Бова
ну ты самое интересное опять не показал)))
формирование $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
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.