首页 > 解决方案 > 如何回显“未找到结果”。使用 sqlsrv 和 PHP?

问题描述

sqlsrv我有一个使用函数在 PHP 中组合在一起的工作查询。我想检查查询是否包含任何结果。如果没有,我想回应一下,“未找到结果”。如果有结果,我希望它继续并显示它们。

我一直在尝试使用sqlsrv_num_rows来检查$result变量是否包含任何数据行,但它会为所有内容回显“未找到结果”,即使是有效搜索也是如此。例如,如果我在表单中输入“EOG”并点击“搜索”,结果页面会显示“未找到结果”。预期结果是 20 行“EOG”变体。我对 PHP 和 sqlsrv 相当了解,并且已经搜索过 Stackoverflow,但还没有遇到一些可行的方法。任何帮助,将不胜感激。

这是用户输入他/她的搜索的表单部分:

<form action="searchResults.php" method="POST" autocomplete="off">
    <input type="text" class="form-control" name="opname" placeholder="Search Text">
    <button type="submit" name="submit-search">Search</button>
</form>

这是接收表单输入数据的 PHP:

<?php
        if (empty($_POST['opname'])) {
            echo "Nothing was entered in the input field";
        } else {
            $params = array("%$_POST[opname]%");

            $query = "SELECT TOP 20 EntityName
                      FROM Well
                      LEFT JOIN Entity ON Entity.PKey = Well.Operator
                      WHERE EntityName LIKE ?;";

            $result = sqlsrv_query($conn, $query, $params);

            if (sqlsrv_num_rows($result) == 0) {
                echo "No results found";
            } else {
                while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_NUMERIC)) {
                    echo $row[0]."<br />";
                }
            }
            sqlsrv_free_stmt($result);
        }
    ?>

标签: phpsql-servervalidationerror-handlingsqlsrv

解决方案


推荐阅读