Почему запрос sql с Like выводит пустую строку?

Ребята подскажите пожалуйста, такая проблема

Делаю запрос к БД вида:
SELECT * FROM `streets` WHERE name like '%Катук%'

Всё работает пишу php
$q = "SELECT * FROM `streets` WHERE name like '%$b%'";
$result =mysql_fetch_array(mysql_query($q));
echo $result['name']";


Выводит пустую строку, что я делаю не так?
  • Вопрос задан
  • 4189 просмотров
Пригласить эксперта
Ответы на вопрос 7
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В MySQL нет функции FIRST(). Вместо этого можно использовать
SELECT * FROM `streets` WHERE name like '%$b%' LIMIT 1

И уходите от использования mysql_ в php. используйте mysqli или PDO.
Ответ написан
интересно: работает один запрос. не работает другой запрос. в чем вопрос, не понятно.
запросы разные, функции first() нет.
Ответ написан
jakulov
@jakulov
А что, если так
echo $b;
$q = "SELECT * FROM `streets` WHERE name like '%$b%'";
$result =mysql_fetch_array(mysql_query($q));
var_dump($result);
Ответ написан
smoked
@smoked
Попробуйте скопировать запрос без вставки переменной и выполните его, т.е.

$q = "SELECT * FROM `streets` WHERE name like '%Катук%'"
Ответ написан
Комментировать
madMxg
@madMxg
Вот так должно работать
$q = "SELECT * FROM `streets` WHERE name like '%".$b."%'";

вы забыли "склеить" sql-запрос и переменную.
Ответ написан
rumkin
@rumkin
Что выдает var_dump($result) ?

Используйте mysql_fetch_assoc, если используете только ассоциативные массивы. Или переходите на pdo.
Уберите лишние кавычки в конце примера.
Проведите запрос без подстановки значения переменной.
Убедитесь что $b не пустое.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы