首页 > 解决方案 > 我的 PHP else { // 语句 }; 在 SQL 中使用 LIKE 未找到结果时不显示(提供图片)

问题描述

<?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 与我的数据库列“名称”中的“名称”不匹配时,我都会得到一个空白返回值(屏幕上没有任何内容)。如果我的击键不再与数据库中的 LIKE 'name' 匹配,我希望它回显“0 个结果”。

我试过把 else 语句放在末尾

希望如果没有结果它会回显

但它只是回显一个空白区域,就好像它正在寻找某种空白结果一样。

提供了我的问题的所有图片,不包括 javascript 文件(我知道这不是问题)。

标签: javascriptphpsqlmysqli

解决方案


根据 PHP docmysqli_query()对于 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他返回结果集的语句,mysql_query() 在成功时返回资源,在错误时返回 FALSE。

试试这个

if ($result = mysqli_query($conn, $sql) && mysqli_num_rows($result)){
 ...
}else{
 ...
}

推荐阅读