Следующий код работает хорошо, но я не смог найти способ ограничить количество результатов. Любые идеи, пожалуйста?Как ограничить результаты поиска при использовании foreach и while циклов
$q = "some keywords for search"; // always escape
$keys = explode(" ",$q);
$query = "SELECT * FROM table WHERE para LIKE '%$q%' ";
foreach($keys as $k)
{
$query .= " OR para LIKE '%$k%'";
}
$result = $mysqli->query($query);
while($row = $result->fetch_assoc())
{
if ($row != 0) {
$title = $row['title'];
}
}
Любая помощь при оценке.
Примечание: в $ q хранятся ключевые слова для поиска, а затем код взорван и поиск ключевых слов в 2 этапа: 1- как одно предложение с использованием ($ q как есть). 2- он ищет каждое ключевое слово как массив после взрыва $ q (вот часть, которую выполняет «foreach»). После этого циклы кода с использованием «while», чтобы найти все результаты, соответствуют поисковому запросу.
'$ запрос =. «ИЛИ para LIKE»% $ k% 'LIMIT x_number ";' вот где он идет, а не в первой части. Вам также не хватает закрывающей скобки. –
Должен ли я удалить это^ –
@ Fred-ii- Да, вы правы, когда я использую «предел» на этом этапе, код работает хорошо, так как он находит ключевые слова в базе данных, но если он не нашел ни одного из их, я получаю следующую ошибку: Неустранимая ошибка: вызов функции-члена fetch_assoc() на boolean в строке fetch_assoc() – weblover