2015-04-09 2 views
0

Я хочу сделать запрос соответствия, в котором все слова строки должны быть необходимы, чтобы быть в поле, но он должен допускать ошибки или слова незавершенными.Match Against ... SEMI-Literall

Мой фактический сценарий таков:

$search= '+'.str_replace(" ","% +",$_POST["searchtext"]); 

С этим я конвертировать «это мой текст» на «+ это + будет + мой + текст», так что все слова необходимы в поиске, и затем я сделать

$query = $dbh->prepare("SELECT name,surname MATCH (name,surname) AGAINST (:search IN BOOLEAN MODE) AS coincidences FROM users MATCH (name,surname) AGAINST (:search2 IN BOOLEAN MODE) ORDER BY coincidences"); 
$query->execute(array('search' => $search,'search2' => $search)); 

Проблема заключается в том, что если в моей БД есть «Стивен Хокинг» и я искать «Стивен Хок» это обыкновение появляться ... Как я могу это исправить?

Большое спасибо

ответ

0

Его сделали ...

$search= '+'.str_replace(" ","* +",$_POST["searchtext"]).'*'; 

: D

+0

Хотя этот фрагмент кода может решить вопрос, [включая пояснения] (HTTP: // мета. stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. – gunr2171

Смежные вопросы