Emir
Новичок
Есть вот такой код в поиске по параметрам:
И такой запрос в БД:
Вардамп:
Вот собственно его результат при выборе двух чекбоксов:
В итоге фильтрация по цене работает, а фильтрация по id - нет. Вопрос состоит в том, почему в запросе $check_brand отображается в таком виде.
P.S. с помощью settype() ради интереса менял $check_brand на int, не помогло.
Код:
if($_GET['brand']){
$check_brand = implode(' , ', $_GET['brand']);
}
$start_price = (int)$_GET['start_price'];
$end_price = (int)$_GET['end_price'];
if( (isset($check_brand) && !empty($check_brand)) || (!empty($end_price) && isset($end_price)) ){
if (isset($check_brand)) { $querybrand = ' AND brand_id IN ($check_brand)';
}
if (!empty($end_price) && isset($end_price)) {
$queryprice = " AND price BETWEEN $start_price AND $end_price";
}
}
Код:
$result = mysql_query("SELECT * FROM table_products WHERE visible='1' $querybrand $queryprice ORDER BY product_id DESC", $link);
Код:
var_dump($check_brand);
echo "<br/>";
var_dump($end_price);
echo "<br/>";
var_dump($querybrand);
echo "<br/>";
var_dump($queryprice);
Код:
string(5) "1 , 4"
int(65000)
string(31) " AND brand_id IN ($check_brand)"
string(33) " AND price BETWEEN 1000 AND 65000"
В итоге фильтрация по цене работает, а фильтрация по id - нет. Вопрос состоит в том, почему в запросе $check_brand отображается в таком виде.
P.S. с помощью settype() ради интереса менял $check_brand на int, не помогло.