Технический сбой

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

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


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

вопрос
Здравствуйте! Скажите, как сделать чтобы поиск по дополнительным полям учитывал неточное вхождение? Знаю, что из конструкции /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 - -

/xfsearch/filed/val/

yeahga
Юзер

yeahga - -

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

lutskboy
Эксперт

lutskboy - -

в 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 - -

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

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

наверх