@LordPrimes

Как исправить фильтр?

Добрый день написал вот такой код
$query = "SELECT * FROM products WHERE brand =  '".$_POST["category"]."' ";

   $brand = $_POST['category']; 
if (isset($brand)){
  
  $brandsdata =implode(",", $brand);
  $query .= " AND brand IN('$brandsdata')";

}
Суть проблемы такова что $brandsdata не имеет значения cделал проверку вар дампом
"SELECT * FROM products WHERE brand = 'Gigabyte' AND brand IN('')"
В чем у меня ошибка?Пост же является массивом и имплоуд должен превратить ее строку.но почему-то он этого не делает.
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 2
gromdron
@gromdron
Работаю с Bitrix24
Замените
if (isset($brand)){
На
if ( !empty($brand) ) {
И еще:
$query = "SELECT * FROM products WHERE brand =  '".$_POST["category"]."' ";

Почитайте про SQL Injection
Ответ написан
Комментировать
@Zabolots
А $brand при этом определена, не null? Вы точно методом POST открываете страницу с этим скриптом?
isset($brand) у Вас будет всегда true, так как строкой выше Вы эту переменную определяете; даже если post-переменная $category не существует, то brand будет иметь значение null и пройдет проверку на существование.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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