Php переменная ломает код если задано значение включающее AND
есть redbeanphp и такой код фильтрации данных (думаю с логикой понятно будет как работает):
// тут если передаются дополнительные фильтры - пишем их в поиск redbeanphp
if( $_POST['filter_area'] != '' ){ $f_area_s = 'AND id_area= ?'; $f_area_d = $_POST['filter_area'].","; }
// делаем поиск по базе и фильтруем, если есть фильтры выше (вывод только не удаленных)
$magazin = R::findAll('magazin ', 'id_city= ? '.$f_area_s.' AND deleted= ?', [$city_id, $f_area_d 0]);
вот мол не нравится такой вариант :
как быть ? пробовал разные варианты, видимо тот самый не подобрал. прошу помочь :) фильтров много будет, хочу добавлять вариации которые выбирают в запрос по шаблону выше..
что пишет на выходе
<b>Parse error</b>: syntax error, unexpected '0' (T_CONSTANT_ENCAPSED_STRING), expecting ']'
Ответы (1 шт):
Автор решения: Mike
→ Ссылка
Можно поступить так:
$w = ['id_city=?', 'deleted=?'];
$v = [$city_id, 0];
if(isset($_POST['filter_area']) and $_POST['filter_area'] != '' ) {
$w[] = 'id_area= ?'; $v[] = $_POST['filter_area'];
}
// Другие условия, добавляющие строки запросов в первый массив и подставляемые параметры во второй
$magazin = R::findAll('magazin ', implode(' AND ', $w), $v)
