Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Поиск по полю Field X

Поиск по полю Field X 5 года 4 мес. назад #2236

  • slonnik
  • slonnik аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 46
  • Спасибо получено: 3
  • Репутация: 1
Добрый день!
Есть ТК "Категории" и ТК "Поставщики". У ТК "Поставщики" есть поле типа Field X, который формируется из поля типа Article (Related) (берутся материалы из категории материалов, куда сохраняются данные из ТК "Категории"). Как организовать поиск среди ТК "Поставщики" по полю типа Field X. Если в Search Form добавить поле Article (Related), то всегда пишет, что нет результата. Если в Search Form добавить поле Field X, то всегда выбираются все материалы из ТК "Поставщики".
Подскажите, пожалуйста, решение данной проблемы.
Спасибо!
Администратор запретил публиковать записи гостям.

Re: Поиск по полю Field X 5 года 4 мес. назад #2277

  • ComeOn
  • ComeOn аватар
  • Не в сети
  • Модератор
  • Сообщений: 516
  • Спасибо получено: 134
  • Репутация: 36
Сразу для начала - 90%, что дело в хранилищах. Включите Debug в Configuration поиска и получившийся запрос в студию.
Сразу скажу, что долго мучился, в конечном итоге заработало, если хранилище филдикса и внутреннего поля поставить как Custom->Article->Field_x_name[Field_name] или Custom->Article->Field_name[Field_name]. Я оставил второй случай для обоих. И второе - данные должны попадать в таблицу #__cck_store_item_content в поле Field_x_name.

Как-то так...
C приветом, Илья.
Veni, Vidi, Vici
Администратор запретил публиковать записи гостям.

Re: Поиск по полю Field X 5 года 4 мес. назад #2280

  • slonnik
  • slonnik аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 46
  • Спасибо получено: 3
  • Репутация: 1
Илья, спасибо за ответ!
Настройки внутреннего поля

Это изображения скрыто для гостей.
Пожалуйста, зарегистрируйтесь или войдите, чтобы увидеть его.


Настройки поля Field X

Это изображения скрыто для гостей.
Пожалуйста, зарегистрируйтесь или войдите, чтобы увидеть его.


Включила Debug, получившийся запрос, если в поиске стоит внутреннее поле:
SELECT t0.id as pid, t0.pk as pk, t0.pkb as pkb, t1.*,t0.cck as cck, t0.storage_location as storage_location,tt.id AS cck_type_id FROM `#__cck_core` AS t0 LEFT JOIN `#__content` AS t1 ON t1.id = t0.pk LEFT JOIN #__cck_core_types AS tt ON tt.name = t0.cck WHERE t1.state = 1 AND t1.access IN (1,1) AND ( t1.publish_up = '0000-00-00 00:00:00' OR t1.publish_up <= '2013-02-06 03:11:45' ) AND ( t1.publish_down = '0000-00-00 00:00:00' OR t1.publish_down >= '2013-02-06 03:11:45' ) AND t0.cck = "vendor" GROUP BY t0.pk ORDER BY t1.title ASC

Запрос после поиска по полю (результат - There is no result)
SELECT t0.id as pid, t0.pk as pk, t0.pkb as pkb, t1.*, t2.*,t0.cck as cck, t0.storage_location as storage_location,tt.id AS cck_type_id FROM `#__cck_core` AS t0 LEFT JOIN `#__cck_store_item_content` AS t1 ON t1.id = t0.pk LEFT JOIN `#__content` AS t2 ON t2.id = t0.pk LEFT JOIN #__cck_core_types AS tt ON tt.name = t0.cck WHERE t2.state = 1 AND t2.access IN (1,1) AND ( t2.publish_up = '0000-00-00 00:00:00' OR t2.publish_up <= '2013-02-06 03:12:13' ) AND ( t2.publish_down = '0000-00-00 00:00:00' OR t2.publish_down >= '2013-02-06 03:12:13' ) AND t0.cck = "vendor" AND t1.tip_article_rel REGEXP "(::tip_article_rel::).*3.*(::/tip_article_rel::)" GROUP BY t0.pk ORDER BY t2.title ASC

Запрос, если в поиске поле Field X:
SELECT t0.id as pid, t0.pk as pk, t0.pkb as pkb, t1.*,t0.cck as cck, t0.storage_location as storage_location,tt.id AS cck_type_id FROM `#__cck_core` AS t0 LEFT JOIN `#__content` AS t1 ON t1.id = t0.pk LEFT JOIN #__cck_core_types AS tt ON tt.name = t0.cck WHERE t1.state = 1 AND t1.access IN (1,1) AND ( t1.publish_up = '0000-00-00 00:00:00' OR t1.publish_up <= '2013-02-06 03:03:25' ) AND ( t1.publish_down = '0000-00-00 00:00:00' OR t1.publish_down >= '2013-02-06 03:03:25' ) AND t0.cck = "vendor" GROUP BY t0.pk ORDER BY t1.title ASC

Запрос после поиска по полю Field X (результат - выводит все материалы):
SELECT t0.id as pid, t0.pk as pk, t0.pkb as pkb, t1.*,t0.cck as cck, t0.storage_location as storage_location,tt.id AS cck_type_id FROM `#__cck_core` AS t0 LEFT JOIN `#__content` AS t1 ON t1.id = t0.pk LEFT JOIN #__cck_core_types AS tt ON tt.name = t0.cck WHERE t1.state = 1 AND t1.access IN (1,1) AND ( t1.publish_up = '0000-00-00 00:00:00' OR t1.publish_up <= '2013-02-06 03:05:06' ) AND ( t1.publish_down = '0000-00-00 00:00:00' OR t1.publish_down >= '2013-02-06 03:05:06' ) AND t0.cck = "vendor" GROUP BY t0.pk ORDER BY t1.title ASC

Это сообщение содержит прикрепленные изображения.
Пожалуйста, войдите или зарегистрируйтесь, чтобы увидеть их.

Последнее редактирование: 5 года 4 мес. назад от slonnik.
Администратор запретил публиковать записи гостям.

Re: Поиск по полю Field X 5 года 4 мес. назад #2286

  • ComeOn
  • ComeOn аватар
  • Не в сети
  • Модератор
  • Сообщений: 516
  • Спасибо получено: 134
  • Репутация: 36
Попробуй сделать, как я написал, и в поиск надо ставить fieldx. И опять запрос в студию
C приветом, Илья.
Veni, Vidi, Vici
Администратор запретил публиковать записи гостям.

Re: Поиск по полю Field X 5 года 4 мес. назад #2291

  • slonnik
  • slonnik аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 46
  • Спасибо получено: 3
  • Репутация: 1
Настройки поля field x:

Это изображения скрыто для гостей.
Пожалуйста, зарегистрируйтесь или войдите, чтобы увидеть его.


В поиске поставила поле filed x.
Скрипт при выводе всех материалов:
SELECT t0.id as pid, t0.pk as pk, t0.pkb as pkb, t1.*,t0.cck as cck, t0.storage_location as storage_location,tt.id AS cck_type_id FROM `#__cck_core` AS t0 LEFT JOIN `#__content` AS t1 ON t1.id = t0.pk LEFT JOIN #__cck_core_types AS tt ON tt.name = t0.cck WHERE t1.state = 1 AND t1.access IN (1,1,2,3) AND ( t1.publish_up = '0000-00-00 00:00:00' OR t1.publish_up <= '2013-02-07 03:03:26' ) AND ( t1.publish_down = '0000-00-00 00:00:00' OR t1.publish_down >= '2013-02-07 03:03:26' ) AND t0.cck = "vendor" GROUP BY t0.pk ORDER BY t1.title ASC

Скрипт при поиске по определенному значению:
SELECT t0.id as pid, t0.pk as pk, t0.pkb as pkb, t1.*,t0.cck as cck, t0.storage_location as storage_location,tt.id AS cck_type_id FROM `#__cck_core` AS t0 LEFT JOIN `#__content` AS t1 ON t1.id = t0.pk LEFT JOIN #__cck_core_types AS tt ON tt.name = t0.cck WHERE t1.state = 1 AND t1.access IN (1,1,2,3) AND ( t1.publish_up = '0000-00-00 00:00:00' OR t1.publish_up <= '2013-02-07 03:04:47' ) AND ( t1.publish_down = '0000-00-00 00:00:00' OR t1.publish_down >= '2013-02-07 03:04:47' ) AND t0.cck = "vendor" GROUP BY t0.pk ORDER BY t1.title ASC

В обоих случаях поиск выдает полный список материалов.

Это сообщение содержит прикрепленные изображения.
Пожалуйста, войдите или зарегистрируйтесь, чтобы увидеть их.

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

Re: Поиск по полю Field X 5 года 4 мес. назад #2292

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Сообщений: 668
  • Спасибо получено: 194
  • Репутация: 66
Вообще, поиск по полю fieldx осуществляется совсем иначе. В поиск добавляется поле, используемое в качестве основы для fieldx, а в колонке collection по-моему (пишу по памяти с телефона) на этом поле выбирается из списка поле fieldx, ему соответствующее. Только тогда поиск работает корректно.
С уважением,
Юрий Посохов
www.seblod.pro
Реквизиты для поддержки проекта seblod.pro:
WMR: R244179985703, WMZ: Z130736735723, WME: E359359968529
PayPal: moscowfly(cобаCHка)gmail.сом
Яндекс.Деньги: 410011637395363

Для ваших проектов рекомендую хостинг от Beget! Стабильная работа сайтов Joomla, отличная поддержка. БЕСПЛАТНЫЙ тестовый месяц без ограничений! Регистрируясь по реферальной ссылке Вы также поддерживаете наш проект! http://beget.ru?id=21871
Администратор запретил публиковать записи гостям.

Re: Поиск по полю Field X 5 года 4 мес. назад #2293

  • slonnik
  • slonnik аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 46
  • Спасибо получено: 3
  • Репутация: 1
Сделала, как написал Юрий. В поиске добавила поле (из которого формируется field x), в collection указала соответствующее поле fileld x. Результат поиска все время выдает "There is no result"
Получившийся скрипт при этом:
SELECT t0.id as pid, t0.pk as pk, t0.pkb as pkb, t1.*, t2.*,t0.cck as cck, t0.storage_location as storage_location,tt.id AS cck_type_id FROM `#__cck_core` AS t0 LEFT JOIN `#__cck_store_item_content` AS t1 ON t1.id = t0.pk LEFT JOIN `#__content` AS t2 ON t2.id = t0.pk LEFT JOIN #__cck_core_types AS tt ON tt.name = t0.cck WHERE t2.state = 1 AND t2.access IN (1,1,2,3) AND ( t2.publish_up = '0000-00-00 00:00:00' OR t2.publish_up <= '2013-02-07 04:56:20' ) AND ( t2.publish_down = '0000-00-00 00:00:00' OR t2.publish_down >= '2013-02-07 04:56:20' ) AND t0.cck = "vendor" AND ((t1.tip_article_rel REGEXP "(::tip_article_rel\\|[0-9]\\|tip_article_rel_x::).*4.*(::/tip_article_rel\\|[0-9]\\|tip_article_rel_x::)")) GROUP BY t0.pk ORDER BY t2.title ASC
Администратор запретил публиковать записи гостям.

Re: Поиск по полю Field X 5 года 4 мес. назад #2294

  • ComeOn
  • ComeOn аватар
  • Не в сети
  • Модератор
  • Сообщений: 516
  • Спасибо получено: 134
  • Репутация: 36
Два ведра пепла на мою седую голову... Виноват, Юрий прав. Но хранилище попробуй сделать как я писал
C приветом, Илья.
Veni, Vidi, Vici
Администратор запретил публиковать записи гостям.

Re: Поиск по полю Field X 5 года 4 мес. назад #2295

  • slonnik
  • slonnik аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 46
  • Спасибо получено: 3
  • Репутация: 1
Хранилище настоила по рекомендации Ильи, поиск по рекомендации Юрия. Поиск выдает "There is no result".
Заметила, что в селекте идет поиск по полю tip_article_rel, хотя данные записываются в поле tip_article_rel_x (в Storage указано tip_article_rel_x[tip_article_rel]). Если я укажу в поле field x в Storage tip_article_rel[tip_article_rel], то материалы сохраняются вообще без этого поля.
Может, все дело в том, что поле tip_article_rel типа Article (Related)?
Последнее редактирование: 5 года 4 мес. назад от slonnik.
Администратор запретил публиковать записи гостям.

Re: Поиск по полю Field X 5 года 4 мес. назад #2333

  • ComeOn
  • ComeOn аватар
  • Не в сети
  • Модератор
  • Сообщений: 516
  • Спасибо получено: 134
  • Репутация: 36
Вот, когда я добился, чтоб он в той, что надо таблице искал, начал играться хранилищами, пока не попал. Попал, когда в обоих стояло tip_article_rel[tip_article_rel] - и в field b field_x.. Извини. :)
C приветом, Илья.
Veni, Vidi, Vici
Администратор запретил публиковать записи гостям.

Re: Поиск по полю Field X 5 года 1 мес. назад #3744

  • ss777
  • ss777 аватар
  • Не в сети
  • Новый участник
  • Сообщений: 19
  • Спасибо получено: 1
  • Репутация: 1
Joomla 3.1 Seblod 3.1.1
У меня получилось со следующими настройками:
Основное поле - Field_name и поле FieldX - Field_name_x
Жмем кнопку 3, в колонке Match на основном поле жмем + и в Collection выбираем Field_name_x, Separator - запятая.
Storage основного поля - Custom->Article->Field_name_x
Storage поля FieldX - Custom->Article->Field_name_x[Field_name]
Поиск производим по основному полю, поле FieldX обязательно должно быть в форме, перемещаем его в позицию Hidden, иначе если его просто скрыть остаются видимыми кнопки управления.
Спасибо Илье и Юрию.
Последнее редактирование: 5 года 1 мес. назад от ss777.
Администратор запретил публиковать записи гостям.

Re: Поиск по полю Field X 4 года 8 мес. назад #4858

  • Shvapsss
  • Shvapsss аватар
  • Не в сети
  • Живу я здесь
  • Сообщений: 681
  • Спасибо получено: 97
  • Репутация: 20
Ребят выручайте.
Не могу никак заставить работать.

без фильтра
SELECT t0.id as pid, t0.pk as pk, t0.pkb as pkb,t0.cck as cck, t0.storage_location as loc,tt.id AS type_id, tt.alias AS type_alias FROM `#__cck_core` AS t0 LEFT JOIN `#__cck_store_form_service` AS t1 ON t1.id = t0.pk LEFT JOIN `#__content` AS t2 ON t2.id = t0.pk LEFT JOIN `#__cck_core_types` AS tt ON tt.name = t0.cck WHERE t2.state = 1 AND t2.access IN (1,1) AND ( t2.publish_up = '0000-00-00 00:00:00' OR t2.publish_up <= '2013-10-05 14:01:21' ) AND ( t2.publish_down = '0000-00-00 00:00:00' OR t2.publish_down >= '2013-10-05 14:01:21' ) AND t0.cck = 'service' AND t1.serv_type_service LIKE '%1%' AND t1.serv_ulica LIKE '%ул.%' GROUP BY t0.pk ORDER BY t2.title ASC

когда включаю поиск по полю.
SELECT t0.id as pid, t0.pk as pk, t0.pkb as pkb,t0.cck as cck, t0.storage_location as loc,tt.id AS type_id, tt.alias AS type_alias FROM `#__cck_core` AS t0 LEFT JOIN `#__cck_store_form_service` AS t1 ON t1.id = t0.pk LEFT JOIN `#__content` AS t2 ON t2.id = t0.pk LEFT JOIN `#__cck_core_types` AS tt ON tt.name = t0.cck WHERE t2.state = 1 AND t2.access IN (1,1) AND ( t2.publish_up = '0000-00-00 00:00:00' OR t2.publish_up <= '2013-10-05 14:03:44' ) AND ( t2.publish_down = '0000-00-00 00:00:00' OR t2.publish_down >= '2013-10-05 14:03:44' ) AND t0.cck = 'service' AND t1.serv_type_service LIKE '%1%' AND t1.serv_brand LIKE '%88%' AND t1.serv_ulica LIKE '%ул.%' GROUP BY t0.pk ORDER BY t2.title ASC

В базе

Это изображения скрыто для гостей.
Пожалуйста, зарегистрируйтесь или войдите, чтобы увидеть его.



В поиске

Это изображения скрыто для гостей.
Пожалуйста, зарегистрируйтесь или войдите, чтобы увидеть его.



В результате ничего все равно не находит.
Себлод 3
Жумла 2.5

Куда нужно капать?

Ваще не могу настроить.Вроде ВСЕ как написали сделал, а в результате не ищет ничего.

Это сообщение содержит прикрепленные изображения.
Пожалуйста, войдите или зарегистрируйтесь, чтобы увидеть их.

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

Re: Поиск по полю Field X 4 года 8 мес. назад #4865

  • Shvapsss
  • Shvapsss аватар
  • Не в сети
  • Живу я здесь
  • Сообщений: 681
  • Спасибо получено: 97
  • Репутация: 20
Не знаю правильно ли сделал.

Направил и то и то в одно поле

Тоесть группу и поле все пишут в таблицу serv_brand
Так как поле отдельно использоваться не будет, думаю проблем не возникнет.

В настройках поиска указал на 3 ке

each
separator
:: (двойное двоеточие)


Вопрос к Вам, товарищи, видите ли Вы каеие нить проблемы ?
Сейчас вроде все работает как надо.
Администратор запретил публиковать записи гостям.
Спасибо сказали: nastjushka

Re: Поиск по полю Field X 3 года 6 мес. назад #7623

  • nastjushka
  • nastjushka аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 57
  • Репутация: 0
Я сделала так:
Field (в данном случае Article Related) и Field X разместила в одном месте: Custom->Article->field
В форму поиска добавила два этих поля Field (в данном случае Article Related) и Field X
В настройках первого на вкладке 3: Каждое слово + Collection ->Field X, разделитель - запятая
В настройках второго поля - все то же самое
В пункте меню в фильтре ставлю в первом поле нужное значение и по нему все фильтруется ))
Администратор запретил публиковать записи гостям.

roundtheme