Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: LIKE в выражение
Форумы портала PHP.SU » » Работа с СУБД » LIKE в выражение

Страниц (2): [1] 2 »
 

1. romanov - 20 Декабря, 2011 - 17:20:28 - перейти к сообщению
Очень буду благодарен тому кто подскажет как правильно синтаксически передать в выражение LIKE переменную из пост запроса , вот оно выражение: agents_user.name LIKE '%$_POST[name]%' - таким образом работает неправильно.
2. Bio man - 20 Декабря, 2011 - 17:24:56 - перейти к сообщению
$name = mysql_real_escape_string($_POST[name]);
LIKE '%$name%'
3. OrmaJever - 20 Декабря, 2011 - 17:29:31 - перейти к сообщению
Ну и разумеется сам запрос должен быть в двойных кавычках.
4. Okula - 20 Декабря, 2011 - 17:30:54 - перейти к сообщению
P.S. Если хочешь чтобы не сбивался шаблон по которому осуществляется поиск в БД, то тогда экранируй ещё символы % и _
5. romanov - 20 Декабря, 2011 - 17:38:41 - перейти к сообщению
как вы написали не работает, вот если передать конкретную строку результаты есть agents_user.name LIKE '%Юд%', но мне надо из массива POST вот sql код с вашими исправлениями:
CODE (SQL):
скопировать код в буфер обмена
  1. $name = $db->real_escape_string($_POST["name"]);
  2.  
  3. $result = $db->query("
  4.  
  5. SELECT agents_user.name
  6. FROM
  7.  agents_user
  8. WHERE
  9.  agents_user.name  LIKE '%$name%'
  10.  
  11.  LIMIT 5  
  12.  "
  13. );
6. Bio man - 20 Декабря, 2011 - 17:44:02 - перейти к сообщению
а так?
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `agents_user`.`name`
  2. FROM
  3.  `agents_user`
  4. WHERE
  5.  `agents_user`.`name`  LIKE '%$name%'
  6.  
  7.  LIMIT 5
7. romanov - 20 Декабря, 2011 - 17:46:30 - перейти к сообщению
так тоже не работает
8. Bio man - 20 Декабря, 2011 - 17:48:59 - перейти к сообщению
запрос хоть выполняется? проверь на ошибки
9. romanov - 20 Декабря, 2011 - 17:56:35 - перейти к сообщению
запрос выполняется, сервер возвращает пусто, ошибок sql вроде нет. Как правильно проверить на SQL ошибки в этом запросе
10. Bio man - 20 Декабря, 2011 - 17:58:15 - перейти к сообщению
mysql_error() типо так $res = mysql_query($sql) or die(mysql_error())
11. romanov - 20 Декабря, 2011 - 17:59:55 - перейти к сообщению
Вот так написал ошибок нет, результата тоже нет:

CODE (SQL):
скопировать код в буфер обмена
  1. $name = $db->real_escape_string($_POST["name"]);
  2.  
  3. $result = $db->query("
  4.    SELECT `agents_user`.`name`
  5.    FROM
  6.     `agents_user`
  7.    WHERE
  8.     `agents_user`.`name`  LIKE '%$name%'
  9.    
  10.     LIMIT 5
  11.  "
  12. )OR die ($db->error() );
12. Bio man - 20 Декабря, 2011 - 18:02:15 - перейти к сообщению
и для полного букета вынеси запрос в переменную и выведи ее. типо так echo $sql
(Добавление)
и убедись, что в таблице есть соответствующие записи
(Добавление)
и попробуй экранировать, типо так LIKE '%{$name}%'
13. romanov - 20 Декабря, 2011 - 18:04:36 - перейти к сообщению
Catchable fatal error: Object of class mysqli_result could not be converted to string
(Добавление)
Если написать такой запрос `agents_user`.`name` LIKE '%Юд%' то записи из базы выдаются
14. Bio man - 20 Декабря, 2011 - 18:08:08 - перейти к сообщению
romanov, в следствии чего ошибка? в mysqli что бы получить текст ошибки нужно прописать так $db->error, error это свойство
15. romanov - 20 Декабря, 2011 - 18:09:29 - перейти к сообщению
ошибок sql нет, я так прописал с самого начала

 

Powered by ExBB FM 1.0 RC1