@msdoc11

Как поправить query запросы в базу mysql php?

Здравствуйте, есть код.

$query = "
SELECT * FROM products
";


И для поиска такой
if($_POST['query'] != '')
{
  $query .= '
  WHERE phone LIKE "%'.str_replace(' ', '%', $_POST['query']).'%"
  ';
}


работает отлично, но когда меняю на это: чтобы искать только у этого юзера
$query = "
SELECT * FROM products WHERE user=1
";

То поиск не работает, ошибка синтаксиса

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 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 'WHERE phone LIKE "%в%" ORDER BY id DESC' at line 3 in fetch.php:68 Stack trace: #0 fetch.php(68): PDOStatement->execute() #1 {main} thrown in fetch.php on line 68

В коде не очень силен, помогите исправить. Понимаю что он сшивает значения и ошибка синтаксиса.
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@msdoc11 Автор вопроса
В комментариях к вопросу Виталий Артемьев ответил:
в запросе можно использовать только 1 WHERE, но если вы хотите использовать несколько фильтров, то нужно использовать логические операторы AND или OR

То есть вместо второго WHERE написал AND и все заработало как нужно
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@grek_cheburek
Программист самоучка
Единицу нужно в кавычки взять. user='1'
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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