Мой PHP else {// оператор}; не отображается, если не найдено результатов с использованием LIKE в SQL (предоставляются рисунки) - PullRequest
0 голосов
/ 04 ноября 2018
<?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.";
}
?>

enter image description here

enter image description here

enter image description here

То, что я хочу сделать, должно быть довольно простым. Я чувствую, что мне просто не хватает ключевого слова или чего-то еще.

  • Получите нажатия клавиш из файла javascript и передайте их через Ajax в этот файл под переменной $ keyPressed
  • Поиск предприятий по названию в моей базе данных
  • Вывод «0 Результатов», если нажатия клавиш не соответствуют ни одному имени в базе данных

Проблема: каждый раз, когда $ keyPressed не соответствует 'name', буква за буквой, в столбце моей базы данных 'name', я получаю пустое возвращаемое значение (на экран ничего не выводится). Я хочу, чтобы он отображал «0 результатов», если мои нажатия клавиш больше не соответствуют LIKE 'name' в моей базе данных.

Я пытался поместить оператор else в конец

  • if ($ result = mysqli_query ($ conn, $ sql)

в надежде на то, что если нет результатов, будет эхо

  • else {echo "0 results"};

но он просто отображает пустое пространство, как будто находит какой-то пустой результат.

Предоставляются все фотографии моей проблемы, за исключением файла javascript (который, как я знаю, не является проблемой).

1 Ответ

0 голосов
/ 04 ноября 2018

согласно PHP документу mysqli_query() Для операторов SELECT, SHOW, DESCRIBE, EXPLAIN и других, возвращающих набор результатов, mysql_query () возвращает ресурс в случае успеха или FALSE в случае ошибки.

попробуйте это

if ($result = mysqli_query($conn, $sql) && mysqli_num_rows($result)){
 ...
}else{
 ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...