У меня есть этот запрос для поиска записей базы данных на основе ключевых слов, введенных в поле поиска. < /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
Как использовать MySQL Match с в логическом режиме, чтобы вернуть результаты как минимум для 1 подходящего ключевого сло ⇐ Php
Кемеровские программисты php общаются здесь
1756771390
Anonymous
У меня есть этот запрос для поиска записей базы данных на основе ключевых слов, введенных в поле поиска. < /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 результат, но если я использую «Хорошую точку», запрос не возвращает никаких результатов, поэтому он полностью игнорирует результаты сопоставления для слова «Хороший».
Есть ли способ, чтобы соответствовать результатам, если в введенных ключевых словах есть способ введенного введенного слова? Спасибо
Подробнее здесь: [url]https://stackoverflow.com/questions/19491341/how-to-use-mysql-match-against-in-boolean-mode-to-return-results-for-at-least-1[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия