Ответить Новая тема Новый опрос 
 Снова sql запрос
meskalin
Новичок
Сообщений: 13
Регистрация: 29-12-2014


13-02-2015 21:10
А вот еще один вопрос по поводу sql запроса. В общем есть форма запроса в tpl . В ней есть несколько полей типа checkbox. Если его пометить то соответствующее поля должно попасть в запрос where.
Далее в контроллере

$scf = Tools::getValue('rcf');

$where = implode (' " and cl.`name` = " ', $scf);
echo $where;

и далее
.....
WHERE (p.`quantity` > 0 and cl.`name` = " '.$where.' ")
........

Где rcf передаваемый массив из формы. Собственно все данные передаются, но
запрос ничего не возвращает. Но если вместо '.$where.' прописать ручками значение, то отрабатывает без проблем. Никак не соображу где собака зарыта.

P.S. Если выводить запрос к базе через echo то вместо $where стоит нужное значение, но результата нет.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
pav31


Профессионал
Сообщений: 418
Откуда: Киев
Регистрация: 28-09-2011


13-02-2015 21:54
Правильнее делать через оператор IN().
$where = implode (",", $scf);
SQL: WHERE (p.`quantity` > 0 and cl.`name` in ('.$where.'))


Сообщение отредактировано pav31 13-02-2015 16:55 ...
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
meskalin
Новичок
Сообщений: 13
Регистрация: 29-12-2014


16-02-2015 16:51
Спасибо большое. C in проще. Чуток доработал, а то наименование состоящее из 2 слов не обрабатывал.

$where = implode ("', '", $scf);
WHERE (p.`quantity` > 0 and cl.`name` in ('.Chr(39).''.$where.''.Chr(39).'))
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


19-02-2015 21:38
https://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%.......82.D1.80.D1.8B
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос