Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> У вас ошибка в вашем синтаксисе SQL, Ошибка при написании функции
Вадим Бова  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42821
На форуме: 1 год, 1 месяц, 14 дней
Карма:




Уважаемые коллеги, при написании запроса
$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 на число все ОК, проверил - в переменную приходит число. В чем прикол не могу понять
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26362
Пользователь №: 21350
На форуме: 7 лет, 2 месяца, 8 дней
Карма: 736




$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 (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Вадим Бова  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42821
На форуме: 1 год, 1 месяц, 14 дней
Карма:




$category = abs((int)$_GET['category']); это не строка
при распечатки $category показывает число

Это сообщение отредактировал Вадим Бова - 8.04.2016 - 13:36
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Вадим Бова  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42821
На форуме: 1 год, 1 месяц, 14 дней
Карма:




и все равно пишет
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
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26362
Пользователь №: 21350
На форуме: 7 лет, 2 месяца, 8 дней
Карма: 736




а как запрос щас твой выглядит?


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Вадим Бова  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42821
На форуме: 1 год, 1 месяц, 14 дней
Карма:




$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 суть ошибки не меняет
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TMake  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3106
Пользователь №: 16333
На форуме: 8 лет, 5 месяцев, 6 дней
Карма: 58




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

тебе Игорь уже написал что нужно сделать, исправь свой запрос.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Вадим Бова  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42821
На форуме: 1 год, 1 месяц, 14 дней
Карма:




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

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

в переменную $category приходит число, специально распечатывал - проверял.
в контролере она прописана как $category = abs((int)$_GET['category']);
Как еще исправить запрос?!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1512
Пользователь №: 28976
На форуме: 5 лет, 9 месяцев, 24 дня
Карма: 86




$query = "SELECT ....";
echo '<br>'.$query;
die();
Результат сюда.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Вадим Бова  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42821
На форуме: 1 год, 1 месяц, 14 дней
Карма:




Цитата (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'
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26362
Пользователь №: 21350
На форуме: 7 лет, 2 месяца, 8 дней
Карма: 736




убери от туда (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 (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Вадим Бова  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42821
На форуме: 1 год, 1 месяц, 14 дней
Карма:




Спасибо большое, проблему не решил, но направления для решения получил 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
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TMake  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3106
Пользователь №: 16333
На форуме: 8 лет, 5 месяцев, 6 дней
Карма: 58




Вадим Бова
пока ты будешь постить куски запроса, ни кто не скажет в чем проблема, чуть больше инфы кинь.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Вадим Бова  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42821
На форуме: 1 год, 1 месяц, 14 дней
Карма:




Цитата (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']);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26362
Пользователь №: 21350
На форуме: 7 лет, 2 месяца, 8 дней
Карма: 736




Вадим Бова
ну ты самое интересное опять не показал)))

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


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса