У меня есть этот запрос для поиска записей базы данных на основе ключевых слов, введенных в поле поиска. < /p>
// function to get search keywords from url
$q = furl($_GET['q']);
$sExp = preg_split('/\s+/',$q);
$secure_keywords = array();
foreach ($sExp as $key=>$keyword){
if (strlen($keyword) >= 3){
// cut off words that are less than 3 chars
$secure_keywords[] = $keyword;
}
}
$kwords = count($secure_keywords);
foreach ($secure_keywords as $key=>$keyword)
{
// function to prevent sql injection
$keyword = sql_proof($keyword);
$query="SELECT * FROM listings WHERE MATCH (meta_keywords) AGAINST ('$keyword' IN BOOLEAN MODE) ORDER BY id";
}
< /code>
Когда используется 2 или более слов, если по крайней мере 1 слово неправильно написано, то запрос не вернет каких -либо результатов (даже если результаты существуют для остальных слов в введенных ключевых словах). Например, я ввожу слово «хорошо», и я получаю как минимум 1 результат, но если я использую «Хорошую точку», запрос не возвращает никаких результатов, поэтому он полностью игнорирует результаты сопоставления для слова «Хороший».
Есть ли способ, чтобы соответствовать результатам, если в введенных ключевых словах есть способ введенного введенного слова? Спасибо
Подробнее здесь: https://stackoverflow.com/questions/194 ... at-least-1