Регистрация
Вход через соцсети
Восстановление пароля

Вопрос по поиску в компоненте

Новый топик
28.11.2013, 21:53
Ответить | Цитировать
Алексей

Зарегистрирован:
2013-05-09
Сообщений: 9

Добрый вечер, уважаемые НетКатоводы! Пользуюсь поиском по компоненту и возникли следующие вопросы:
1. Поиск осуществляется по текстовому полю "теги", например при добавлении холодильника, админ пишет "холодильники, бытовая техника". Если в строке поиска ввести "холодильники" или "бытовая техника" по раздельности, то все работает, а запрос типа "бытовая техника холодильники" не выдает ничего. Как поставить в параметрах поиска значение, при котором будут выводиться все результаты, в которых присутствуют слова поиска? Запятые должны игнорироваться.
2. Если результатов все же нет, какое условие поставить, чтобы выводить некоторый блок (в блоке будет фраза типа "извините, мы ничего не нашли")? Подозреваю, что делается это с помощью тернарного оператора на раз-два, но не смог найти достаточно инфо по этому вопросу.
Буду благодарен за любую помощь, особенно за информативную ссылку.
29.11.2013, 16:18
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Вот ваша ссылка http://netcat.ru/developers/docs/components/system-settings/
Она мала вам поможет. Только практика в таких вопросах решит вашу ситуацию.
2. В префиксе поставьте <? if($totRows==0){ ?>извините, мы ничего не нашли<? } ?>
1. в идеале если вы сами научитесь это делать изучив функции ниже. Попробуйте написать самостоятельно руководствуясь инструкцией ниже
Записывайте в переменные либо для сокращения кода обрабатывайте внутри функций (код станет не читабельным)

Если поисковое поле называется name='search_tag' а само поле tag то переменная $f_tag
С помощью replace() сделайте замену пробелов на нечего.
$replace = replace(' ','',$search_tag);
С помощью explode() разложите строку на массив
$array_search = explode(',',$replace);
Создаем цикл чтобы занести все значения.
$where_like = '';
forech($replace as $item){
$where_like .= "a.tag LIKE '%".$item."%' OR";
};

Создаем выборку
$query_where ="a.Checked = 1 AND (".$where_like.")";
Это лишь прототип.

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
29.11.2013, 17:04
Ответить | Цитировать
Гость
Гость

Спасибо, Александр, буду пробовать
198 196 2013-11-29 17:04:28 13411
Описание проекта