Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сделать неточный поиск по дополнительным полям?

Как сделать неточный поиск по дополнительным полям?


     26.06.2018    xfsearch, доп поля, xfields, поиск, неточное вхождение    Общие вопросы по PHP, Хаки, MySQL    1314

вопрос
Здравствуйте! Скажите, как сделать чтобы поиск по дополнительным полям учитывал неточное вхождение? Знаю, что из конструкции /xfsearch/filed/value/ можно убрать filed, чтобы было /xfsearch/value/, но тогда будет поиск по всем полям, а нужен по конкретному.

Например так:
/xfsearch/filed/value/ - точное вхождение значения value в поле filed
/xf/filed/value/ - неточное.

Допустим у одной новости поле filed равно value, у второй - val2, у третьей - value3
/xfsearch/filed/value/ - найдет только первую новость
/xf/filed/value/ - найдет первую и третью

Ответа пока нет


4 комментария

Attyla
Юзер

Attyla - 27 июня 2018 11:11 -

/xfsearch/filed/val/

yeahga
Юзер

yeahga - 27 июня 2018 12:17 -

Внимательно вопрос читайте, перед тем, как отвечать. Вопрос: Как сделать неточный поиск по дополнительным полям?

lutskboy
Эксперт

lutskboy - 27 июня 2018 12:42 -

в engine\engine.php

$db->query ( "SELECT news_id, tagvalue FROM " . PREFIX . "_xfsearch WHERE tagname='{$xfname}' AND tagvalue='{$xf}'" );

на

$xf_search = in_array($xfname, ['villa','auto']) ? "tagvalue LIKE '%{$xf}%'" : "tagvalue='{$xf}'";
$db->query ( "SELECT news_id, tagvalue FROM " . PREFIX . "_xfsearch WHERE tagname='{$xfname}' AND $xf_search" );

'villa','auto' доп поля для каких нужно

yeahga
Юзер

yeahga - 27 июня 2018 13:18 -

Спасибо. Я пробовал так. Но в URL в значении поля происходит замена на первое совпадение в таблице tagvalue. Попробую объяснить подробнее.
Например, Я ввожу /xfsearch/auto/mercedes/, а url меняется на /xfsearch/auto/Mercedes-Benz/ , потому что Mercedes-Benz - первое совпадение в столбце tagvalue для tagname=auto
Подскажите, пожалуйста, как это исправить?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх