Vladimir_K

Пользовательский фильтр не ищет так как нужно.

Recommended Posts

Здравствуйте.

Я создал пользовательский фильтр (Редактор форм - Формы поиска). Сегодня заметил, что он не ищет так как должен.

У нас есть Регион(новый справочник) - Район(на базе стандартного Регионы) - Город (Город, как и был). 

Они перевязаны в настройках полей таблицы data параметрами "linked" и "depended". Плюс к этому в форму вытащили ещё параметры поиска в виде select_box - wi-fi, парковка, кондиционер и некоторые другие. 

В условном городе N у нас всего содержится 50 объектов (во всех категориях).

Так вот если выбрать определённый город N и попытаться отфильтровать в нём, например, квартиры с wi-fi (т.е. в select_box выбрать пункт "есть wi-fi"), то фильтр всё равно выдаёт все 50 объектов. В не зависимости о того, есть ли там реально wi-fi или нет.

Та же ситуация с парковкой - добавляем к выше указанным параметрам поиска парковку. Т.е. типа нас интересуют объекты с наличием wi-fi и парковкой. Результат выдачи такой же - все 50 объявлений по городу. Хотя я зашёл и специально проверил. По городу N только 7 объектов в которых есть и wi-fi и парковка одновременно.

Как сделать так, что бы фильтр искал правильно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Редактор форм - Формы поиска - только создает форму. Совершением поиска это не занимается. Для поиска нужно использовать или template_search-подход или local_grid_constructor-подход. Сама форма только плодит параметры вбрасываемые в запрос и выводит нечто похожее на форму в шаблон. Как обрабатывать эти параметры и обрабатывать ли вообще - это уже выше способностей формы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 18.06.2017 в 20:16, abushyk сказал:

Для поиска нужно использовать или template_search-подход или local_grid_constructor-подход.

Попробовал использовать template_search-подход, о котором вы писали. Т.е. добавил в site.com/template/frontend/realia/main/ файл template_search.php примерно вот такого содержания:

<?php
class Template_Search extends SiteBill {
    public function getParams(){
        $params=array();
        if(''!==$this->getRequestValue('parametr1')){
	 	$params['parametr1'] = (int)$this->getRequestValue('parametr1');
	 }

     if(''!==$this->getRequestValue('parametr2')){
        $params['parametr2'] = (int)$this->getRequestValue('parametr2');
     }

     if(''!==$this->getRequestValue('parametr3')){
        $params['parametr3'] = (int)$this->getRequestValue('parametr3');
     }

      ........
     
        return $params;
    }
    public function run(){
        $where_array=array();
        $params=$this->getParams();
        require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php');
        $data_model = new Data_Model();
        $data_model_array = $data_model->get_kvartira_model(false);
        $data_model_array = $data_model_array['data'];
        if($params['parametr1'] == 1 && isset($data_model_array['parametr1'])){
        	$where_array[]=DB_PREFIX.'_data.parametr1='.$params['parametr1'];
	 }


     if($params['parametr2'] == 1 && isset($data_model_array['parametr2'])){
            $where_array[]=DB_PREFIX.'_data.parametr2='.$params['parametr2'];
     }

     if($params['parametr3'] == 1 && isset($data_model_array['parametr3'])){
            $where_array[]=DB_PREFIX.'_data.parametr3='.$params['parametr3'];
     }

     ........

        return array(
            'where'=>$where_array,
            'params'=>$params	
        );
    }
}

Потестировал фильтр. Фильтр не ищет по выбранным параметрам поиска в самом фильтре. Выбираем нужные значения в фильтре и жмём "Искать". И ничего. Если посмотреть в адресную строку браузера, то там везде нули:

site.com/index.php?region_id=&city_id=0&topic_id=0&parametr1=0&parametr2=0&parametr3=0&price=0

Хотя значения parametr1, parametr2 и parametr3 в фильтре выбраны и он должен по ним искать.

А вот если в адресную строку в ручную передать значения параметров, т.е. вписать 

...&parametr1=1&parametr2=1&parametr3=1&...

то фильтрация срабатывает и нужные объявления находятся по заданным параметрам.

т.е. получается, что проблема с передачей значений из фильтра в запрос? Как это исправить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
31 минуту назад, Vladimir_K сказал:

т.е. получается, что проблема с передачей значений из фильтра в запрос? Как это исправить?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
13 часа назад, Vladimir_K сказал:

Попробовал использовать template_search-подход, о котором вы писали. Т.е. добавил в site.com/template/frontend/realia/main/ файл template_search.php примерно вот такого содержания:


<?php
class Template_Search extends SiteBill {
    public function getParams(){
        $params=array();
        if(''!==$this->getRequestValue('parametr1')){
	 	$params['parametr1'] = (int)$this->getRequestValue('parametr1');
	 }

     if(''!==$this->getRequestValue('parametr2')){
        $params['parametr2'] = (int)$this->getRequestValue('parametr2');
     }

     if(''!==$this->getRequestValue('parametr3')){
        $params['parametr3'] = (int)$this->getRequestValue('parametr3');
     }

      ........
     
        return $params;
    }
    public function run(){
        $where_array=array();
        $params=$this->getParams();
        require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php');
        $data_model = new Data_Model();
        $data_model_array = $data_model->get_kvartira_model(false);
        $data_model_array = $data_model_array['data'];
        if($params['parametr1'] == 1 && isset($data_model_array['parametr1'])){
        	$where_array[]=DB_PREFIX.'_data.parametr1='.$params['parametr1'];
	 }


     if($params['parametr2'] == 1 && isset($data_model_array['parametr2'])){
            $where_array[]=DB_PREFIX.'_data.parametr2='.$params['parametr2'];
     }

     if($params['parametr3'] == 1 && isset($data_model_array['parametr3'])){
            $where_array[]=DB_PREFIX.'_data.parametr3='.$params['parametr3'];
     }

     ........

        return array(
            'where'=>$where_array,
            'params'=>$params	
        );
    }
}

Потестировал фильтр. Фильтр не ищет по выбранным параметрам поиска в самом фильтре. Выбираем нужные значения в фильтре и жмём "Искать". И ничего. Если посмотреть в адресную строку браузера, то там везде нули:


site.com/index.php?region_id=&city_id=0&topic_id=0&parametr1=0&parametr2=0&parametr3=0&price=0

Хотя значения parametr1, parametr2 и parametr3 в фильтре выбраны и он должен по ним искать.

А вот если в адресную строку в ручную передать значения параметров, т.е. вписать 


...&parametr1=1&parametr2=1&parametr3=1&...

то фильтрация срабатывает и нужные объявления находятся по заданным параметрам.

т.е. получается, что проблема с передачей значений из фильтра в запрос? Как это исправить?

Если у вас parametr не типа int, тогда вам не нужно приводить значения к int.

Т.е. в коде не должно быть при инициализации (int)

Также в поисковых запросах, если это строка, то значения нужно экранировать кавычками ''

            $where_array[]=DB_PREFIX.'_data.parametr3=\''.$params['parametr3'].'\'';

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Также для полноты картины нужно видеть как у вас созданы эти параметры в редакторе форм и какой код вы использовали для вывода в форме поиска.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Давайте, для полноты картины и для того, что бы уже окончательно разобраться с настройками фильтра, будем разбираться с выводом и в дефолтную форму и в Пользовательскую форму. Поэтому по-порядку.

6 часов назад, rumantic сказал:

Если у вас parametr не типа int, тогда вам не нужно приводить значения к int.

Т.е. в коде не должно быть при инициализации (int)

Также в поисковых запросах, если это строка, то значения нужно экранировать кавычками ''

Поля фильтра выглядят вот так:

Регион (новый справочник, сами добавляли)
Район (на базе стандартного Регион)
Город (на базе стандартного Город)
Тип объекта (категории, со структуры)

2 поля типа select_box, 5 полей типа checkbox.

Цена (на базе дефолтного price). Конкретно это поле в Пользовательской форме хотелось бы превратить как в дефолтной форме в виде ползунков Цена от/Цена до

По первым 4 параметрам поиска форма ищет нормально (по крайней мере навскидку). Всё фильтруется. А вот когда начинается комбинаторика с остальными полями - нет...

Плюс к этому, не знаю почему, но в Пользовательской форме по цене тоже не ищет.

Сам файл template_search.php брал из вот этого видео - 

 

6 часов назад, rumantic сказал:

Также для полноты картины нужно видеть как у вас созданы эти параметры в редакторе форм и какой код вы использовали для вывода в форме поиска.

То, что я писал выше касается Пользовательской формы, которую я создал вручную в Редактор форм - Формы поиска. Я так понял, что поля этой формы формируются автоматически и ничего не нужно дополнительно вставлять. С ней проблема такая, что она не ищет.

После того, как я добавил в site.com/template/frontend/realia/main/ файл template_search.php она искать вроде начала (моя Пользовательская), но только если в адресной строке руками вписывать значения (я тоже писал об этом выше).

Что касается того, как эти параметры созданы в редакторе форм, то даже не знаю, как вам показать. Обыкновенный чекбокс. Например "Наличие Wi-Fi" или "Парковка". Селект бокс, например - "Размещение с животными" {0~~}{1~~разрешено}{2~~запрещено}{3~~по согласованию}. Как-то так. В самих полях ничего военного нет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Vladimir_K сказал:

Так то, что там написано касается дефолтной формы. Или и Пользовательской тоже?

Пользовательская форма рисует только HTML код, она не создает код для поиска, код поиска по вашим параметрам нужно составлять вручную.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Vladimir_K сказал:

 

Что касается того, как эти параметры созданы в редакторе форм, то даже не знаю, как вам показать. Обыкновенный чекбокс. Например "Наличие Wi-Fi" или "Парковка". Селект бокс, например - "Размещение с животными" {0~~}{1~~разрешено}{2~~запрещено}{3~~по согласованию}. Как-то так. В самих полях ничего военного нет.

 

Может тогда скините полный листинг вашего template_search.php ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, rumantic сказал:

Может тогда скините полный листинг вашего template_search.php ?

Вот:

<?php
class Template_Search extends SiteBill {
    public function getParams(){
        $params=array();
        if(''!==$this->getRequestValue('bassein')){
	 	$params['bassein'] = (int)$this->getRequestValue('bassein');
	 }

     if(''!==$this->getRequestValue('nalichie_wifi')){
        $params['nalichie_wifi'] = (int)$this->getRequestValue('nalichie_wifi');
     }

     if(''!==$this->getRequestValue('childrens')){
        $params['childrens'] = (int)$this->getRequestValue('childrens');
     }

     if(''!==$this->getRequestValue('stoyanka')){
        $params['stoyanka'] = (int)$this->getRequestValue('stoyanka');
     }

     if(''!==$this->getRequestValue('animals_id')){
        $params['animals_id'] = (int)$this->getRequestValue('animals_id');
     }

        return $params;
    }
    public function run(){
        $where_array=array();
        $params=$this->getParams();
        require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php');
        $data_model = new Data_Model();
        $data_model_array = $data_model->get_kvartira_model(false);
        $data_model_array = $data_model_array['data'];
        if($params['bassein'] == 1 && isset($data_model_array['bassein'])){
        	$where_array[]=DB_PREFIX.'_data.bassein='.$params['bassein'];
	 }

     if($params['nalichie_wifi'] == 1 && isset($data_model_array['nalichie_wifi'])){
            $where_array[]=DB_PREFIX.'_data.nalichie_wifi='.$params['nalichie_wifi'];
     }

     if($params['childrens'] == 1 && isset($data_model_array['childrens'])){
            $where_array[]=DB_PREFIX.'_data.childrens='.$params['childrens'];
     }

     if($params['stoyanka'] == 1 && isset($data_model_array['stoyanka'])){
            $where_array[]=DB_PREFIX.'_data.stoyanka='.$params['stoyanka'];
     }

     if($params['animals_id'] == 1 && isset($data_model_array['animals_id'])){
            $where_array[]=DB_PREFIX.'_data.animals_id='.$params['animals_id'];
     }

     
        return array(
            'where'=>$where_array,
            'params'=>$params	
        );
    }
}

bassein, nalichie_wifi, childrens, stoyanka - это checkbox.
animals_id - это select_box.

Поля не все, которые будут. Но добиться работоспособности хотя бы с этими. Остальные можно по аналогии сделать. 

Ну и плюс цена тоже не срабатывает.

И будет ещё одно поле. Расстояние до моря в метрах. Поле типа safe_string с rules=Type:int. Его тоже желательно превратить в ползунки с диапазоном.

Ну а так, вроде всё. Пока всё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, rumantic сказал:

Пользовательская форма рисует только HTML код, она не создает код для поиска, код поиска по вашим параметрам нужно составлять вручную.

Согласно описаному тут - https://www.sitebill.ru/s/topic/241-добавить-новые-поля-в-поиск-template_search-и-др/?do=findComment&comment=2741 рецепту я сделал следующее:

1. Скопировал /apps/system/lib/frontend/search/kvartira_search.php в папку /template/frontend/realia/main/search/ и переименовал его в local_kvartira_search.php
2. В local_kvartira_search.php заменил class Kvartira_Search_Form extends SiteBill на class Local_Kvartira_Search_Form extends SiteBill.
3. В /template/frontend/realia/main/main.php заменил

require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/search/kvartira_search.php');
$kvartira_search_form = new Kvartira_Search_Form();
$kvartira_search_form->main();

на

require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/search/kvartira_search.php');
require_once(SITEBILL_DOCUMENT_ROOT.'/template/frontend/'.$this->getConfigValue('theme').'/main/search/local_kvartira_search.php');
$kvartira_search_form = new Local_Kvartira_Search_Form();$kvartira_search_form->main();

Всё, пока ничего больше не трогал. Теперь у нас по идее искать будет local_kvartira_search.php. В него и нужно вносить все изменения. Так?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробййте в своем скрипте перед return сделать вывод

print_r($where_array);

И нажмите поиск, выведен что-нибудь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, rumantic сказал:

Попробййте в своем скрипте перед return сделать вывод


print_r($where_array);

И нажмите поиск, выведен что-нибудь?

 

Добавил перед:

 return array(
            'where'=>$where_array,
            'params'=>$params    
        );


Вверху сайта появилось:

Array ( ) Array ( ) Array ( )


Выбираю "Наличие Wi-Fi" (checkbox). Жму "Искать". Результат:

Адресная строка браузера:

/index.php?regionareas_id=0&region_id=&city_id=0&topic_id=0&animals_id=0&seadist_id=&nalichie_wifi=0&price=0

Вверху сайта:

Array ( ) Array ( )

Выдача фильтра - все объявления, что есть на сайте. По заданному параметру не фильтрует.


Добавляю "Бассейн" (checkbox). Жму "Искать". Результат:

Адресная строка браузера:

/index.php?regionareas_id=0&region_id=&city_id=0&topic_id=0&animals_id=0&seadist_id=&nalichie_wifi=1&bassein=0&price=0

Вверху сайта:

Array ( [0] => re_data.nalichie_wifi=1 ) Array ( [0] => re_data.nalichie_wifi=1 )

Выдача фильтра - объекты только с наличием wi-fi. Без учёта наличия бассейна.


Добавляю "Поселение с животными" (select_box) и "Наличие стоянки" (checkbox). Жму "Искать". Результат:

Адресная строка браузера:

/index.php?regionareas_id=0&region_id=&city_id=0&topic_id=0&animals_id=1&seadist_id=&nalichie_wifi=1&stoyanka=0&bassein=1&price=0

Вверху сайта:

Array ( [0] => re_data.bassein=1 [1] => re_data.nalichie_wifi=1 [2] => re_data.animals_id=1 ) Array ( [0] => re_data.bassein=1 [1] => re_data.nalichie_wifi=1 [2] => re_data.animals_id=1 )

Выдача фильтра - объекты с одновременным наличием wi-fi, бассейна и разрешённым поселением с животными. Наличие парковки не учтено.


Т.е. такое ощущение, что фильтр "опаздывает" на 1 шаг. Причём похоже, что именно по checkbox. Потому, что select_box на третьем шаге был передан сразу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Vladimir_K сказал:

Т.е. такое ощущение, что фильтр "опаздывает" на 1 шаг. Причём похоже, что именно по checkbox. Потому, что select_box на третьем шаге был передан сразу.

Это говорит о том, что код HTML для формы поиска создан неправильно.

Покажите типы данных из таблицы вашей data - структуру mysql из phpmyadmin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
22 минуты назад, rumantic сказал:

Это говорит о том, что код HTML для формы поиска создан неправильно.

Покажите типы данных из таблицы вашей data - структуру mysql из phpmyadmin

Если я вас правильно понял, вот:

CREATE TABLE IF NOT EXISTS `re_data` (
  `id` int(10) unsigned NOT NULL,
  `user_id` int(10) unsigned NOT NULL DEFAULT '0',
  `type_id` int(10) unsigned NOT NULL DEFAULT '0',
  `topic_id` int(10) unsigned NOT NULL DEFAULT '0',
  `country_id` int(10) unsigned NOT NULL DEFAULT '0',
  `city_id` int(10) unsigned NOT NULL DEFAULT '0',
  `metro_id` int(10) unsigned NOT NULL DEFAULT '0',
  `district_id` int(10) unsigned NOT NULL DEFAULT '0',
  `price` int(10) unsigned DEFAULT '0',
  `text` text,
  `image` text,
  `contact` text,
  `date_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `agent_tel` text,
  `room_count` int(11) DEFAULT NULL,
  `elite` int(10) unsigned DEFAULT '0',
  `session_id` text NOT NULL,
  `active` int(11) NOT NULL DEFAULT '0',
  `sub_id1` int(10) unsigned NOT NULL DEFAULT '0',
  `sub_id2` int(10) unsigned NOT NULL DEFAULT '0',
  `reviews_count` int(10) unsigned NOT NULL DEFAULT '0',
  `hot` int(10) unsigned DEFAULT '0',
  `floor` int(11) NOT NULL DEFAULT '0',
  `floor_count` int(11) NOT NULL DEFAULT '0',
  `walls` varchar(255) NOT NULL DEFAULT '',
  `balcony` varchar(255) NOT NULL DEFAULT '',
  `square_all` varchar(255) NOT NULL DEFAULT '',
  `square_live` varchar(255) NOT NULL DEFAULT '',
  `square_kitchen` varchar(255) NOT NULL DEFAULT '',
  `bathroom` varchar(255) NOT NULL DEFAULT '',
  `is_telephone` varchar(255) NOT NULL DEFAULT '',
  `furniture` varchar(255) NOT NULL DEFAULT '',
  `plate` varchar(255) NOT NULL DEFAULT 'нет',
  `agent_email` varchar(255) NOT NULL DEFAULT '',
  `number` varchar(255) NOT NULL DEFAULT '',
  `spec` tinyint(4) NOT NULL DEFAULT '0',
  `floor_cover` text,
  `square_room` text,
  `is_kitchen` tinyint(4) NOT NULL DEFAULT '0',
  `region_id` int(10) unsigned NOT NULL DEFAULT '0',
  `street_id` int(10) unsigned NOT NULL DEFAULT '0',
  `planning` text NOT NULL,
  `dom` text NOT NULL,
  `flat_number` text NOT NULL,
  `owner` text NOT NULL,
  `source` text NOT NULL,
  `adv_date` text NOT NULL,
  `more1` text NOT NULL,
  `more2` text NOT NULL,
  `more3` text NOT NULL,
  `youtube` text NOT NULL,
  `fio` varchar(255) NOT NULL DEFAULT '',
  `phone` varchar(255) NOT NULL DEFAULT '',
  `realty_type_id` int(10) unsigned NOT NULL DEFAULT '0',
  `view_count` int(10) unsigned NOT NULL DEFAULT '0',
  `best` int(10) unsigned NOT NULL DEFAULT '0',
  `email` varchar(255) NOT NULL DEFAULT '',
  `distance` varchar(255) NOT NULL DEFAULT '',
  `tmp_password` varchar(255) NOT NULL DEFAULT '',
  `ad_mobile_phone` varchar(255) NOT NULL DEFAULT '',
  `ad_stacionary_phone` varchar(255) NOT NULL DEFAULT '',
  `can_call_start` varchar(255) NOT NULL DEFAULT '',
  `can_call_end` varchar(255) NOT NULL DEFAULT '',
  `currency_id` int(10) unsigned NOT NULL DEFAULT '1',
  `premium_status_end` int(11) NOT NULL DEFAULT '0',
  `bold_status_end` int(11) NOT NULL DEFAULT '0',
  `vip_status_end` int(11) NOT NULL DEFAULT '0',
  `meta_title` text,
  `meta_description` text,
  `meta_keywords` text,
  `image_md5` varchar(255) DEFAULT NULL,
  `image_cache` text,
  `image_parsed` int(11) NOT NULL DEFAULT '0',
  `geo_lat` decimal(9,6) DEFAULT NULL,
  `geo_lng` decimal(9,6) DEFAULT NULL,
  `resortareas_id` int(10) unsigned NOT NULL DEFAULT '0',
  `wifi` varchar(255) NOT NULL DEFAULT '',
  `rooms_type` varchar(255) NOT NULL DEFAULT '',
  `cena_za` varchar(255) NOT NULL DEFAULT '',
  `period_raboty` varchar(255) NOT NULL DEFAULT '',
  `usloviya_pitaniya` varchar(255) NOT NULL DEFAULT '',
  `parking` varchar(255) NOT NULL DEFAULT '',
  `hotwater` varchar(255) NOT NULL DEFAULT '',
  `cold_water` varchar(255) NOT NULL DEFAULT '',
  `beach` int(10) unsigned NOT NULL DEFAULT '0',
  `beach_id` varchar(255) NOT NULL DEFAULT '0',
  `animals_id` varchar(255) NOT NULL DEFAULT '0',
  `sea_distance_id` varchar(255) NOT NULL DEFAULT '',
  `do_rynka_id` varchar(255) NOT NULL DEFAULT '',
  `do_magazina_id` varchar(255) NOT NULL DEFAULT '',
  `in_time` varchar(255) NOT NULL DEFAULT '',
  `out_time_id` varchar(255) NOT NULL DEFAULT '0',
  `in_time_id` varchar(255) NOT NULL DEFAULT '0',
  `documenty_id` varchar(255) NOT NULL DEFAULT '',
  `usloviya_oplaty_id` varchar(255) NOT NULL DEFAULT '',
  `transfer_id` varchar(255) NOT NULL DEFAULT '0',
  `discounts_price_id` text,
  `skype_id` varchar(255) NOT NULL DEFAULT '',
  `dopuslugi_id` varchar(255) NOT NULL DEFAULT '',
  `ekskursii_id` varchar(255) NOT NULL DEFAULT '',
  `on_territory_id` varchar(255) NOT NULL DEFAULT '0',
  `pool_id` varchar(255) NOT NULL DEFAULT '0',
  `phone2` varchar(255) NOT NULL DEFAULT '',
  `site_link` varchar(255) NOT NULL DEFAULT '',
  `object_name_id` varchar(255) NOT NULL DEFAULT '',
  `pitanie` int(10) unsigned NOT NULL DEFAULT '0',
  `stoyanka` int(10) unsigned NOT NULL DEFAULT '0',
  `childrens` int(10) unsigned NOT NULL DEFAULT '0',
  `nalichie_wifi` int(10) unsigned NOT NULL DEFAULT '0',
  `bassein` int(10) unsigned NOT NULL DEFAULT '0',
  `seadist_id` varchar(255) NOT NULL DEFAULT ''
) ENGINE=MyISAM AUTO_INCREMENT=38 DEFAULT CHARSET=utf8;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все что у вас чекбоксы, нужно чтобы было типа integer, а у вас чекбоксы храняться varchar - поменяйте тип данных для них.

Еще покажите HTML код самой формы поиска.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
33 минуты назад, rumantic сказал:

Все что у вас чекбоксы, нужно чтобы было типа integer, а у вас чекбоксы храняться varchar - поменяйте тип данных для них.

Почему в varchar? У этих полей тип int стоит везде. Или я не туда смотрю? 

40 минут назад, Vladimir_K сказал:

`pitanie` int(10) unsigned NOT NULL DEFAULT '0',   `stoyanka` int(10) unsigned NOT NULL DEFAULT '0',   `childrens` int(10) unsigned NOT NULL DEFAULT '0',   `nalichie_wifi` int(10) unsigned NOT NULL DEFAULT '0',   `bassein` int(10) unsigned NOT NULL DEFAULT '0',

Исключение составляют 

 `animals_id` varchar(255) NOT NULL DEFAULT '0', и
`seadist_id` varchar(255) NOT NULL DEFAULT ''

Но это не checkbox, а select_box и safe_string с Type:int соответсвенно.

К тому же я эти поля создавал через админ зону, а не через БД. Как они могли не так создаться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, Vladimir_K сказал:

У checkbox должны быть value="1"

<input id="frm_0cdaf1b51957ce312d719f2df422d425_nalichie_wifi" type="checkbox" name="nalichie_wifi" value="1" class="ez-hide">

А у вас сейчас 0 там

<input id="frm_0cdaf1b51957ce312d719f2df422d425_nalichie_wifi" type="checkbox" name="nalichie_wifi" value="0" class="ez-hide">

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, rumantic сказал:

У checkbox должны быть value="1"


<input id="frm_0cdaf1b51957ce312d719f2df422d425_nalichie_wifi" type="checkbox" name="nalichie_wifi" value="1" class="ez-hide">

А у вас сейчас 0 там


<input id="frm_0cdaf1b51957ce312d719f2df422d425_nalichie_wifi" type="checkbox" name="nalichie_wifi" value="0" class="ez-hide">

 

И как это исправить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.