<option value="prodam"> Продажа</option> <option value="arenda"> Аренда</option> <option value="kuplu"> Куплю</option> <option value="snimu"> Сниму</option> Тут у вас prodam, arenda.... А тут $params['action_d'] = (int)$this->getRequestValue('action_d'); вы эти значения приводите к цлому числу - в данном случае к нулю, в который превращаются все слова. И в поиск в запрос даете уже ноль, а не " prodam, arenda...." . Вот и не ищет. Либо убрать нафик prodam, arenda.... и заменить их нормальными цифрами Либо в проверке $params['action_d'] = (int)$this->getRequestValue('action_d'); изменить на условие совпадения с одним из допустимых значений.