<?php
include 'conn.inc.php';
$keyPressed = mysqli_escape_string($conn, $_POST['keyPressed']);
if (!empty($keyPressed)) {
$sql = "SELECT name, type FROM businesses WHERE name LIKE '$keyPressed%' ORDER BY name";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while ($row=mysqli_fetch_assoc($result)) {
echo "<div class='businesses-bar'>
<p class='businessName'>",
$row['name'],
" (",$row['type'],")","</p>
<button type='button'>PIN</button>
</div>";
}
} else {
echo "0 results";
}
} else {
echo "Search a business and click \"Pin\" to add it to the map.";
}
?>
То, что я хочу сделать, должно быть довольно простым. Я чувствую, что мне просто не хватает ключевого слова или чего-то еще.
Проблема: каждый раз, когда $ keyPressed не совпадает с «имя», буква за буквой, в столбце моей базы данных «имя», я получаю пустое возвращаемое значение (на экран ничего не выводится). Я хочу, чтобы он отображал «0 результатов», если мои нажатия клавиш больше не соответствуют LIKE ‘name’ в моей базе данных.
Я пытался поместить заявление else в конце
надеясь, что если нет результатов, это будет эхом
но он просто отображает пустое пространство, как будто находит какой-то пустой результат.
Все фотографии моей проблемы предоставлены за исключением файла javascript (который, я знаю, не является проблемой).
согласно PHP документу mysqli_query()
Для SELECT, SHOW, DESCRIBE, EXPLAIN и других операторов, возвращающих набор результатов, mysql_query () возвращает ресурс в случае успеха или FALSE в случае ошибки.
попробуй это
if ($result = mysqli_query($conn, $sql) && mysqli_num_rows($result)){
...
}else{
...
}
Других решений пока нет …