基本PHP程序不过滤表

时间:2017-04-19 17:05:40

标签: php mysql database

我正在开发一个非常基础的PHP程序。我正在使用旧版本的PHP(不是PDO等)(请不要为此烘焙我),但不能让这个工作。过去几个小时我一直在研究它,但是我无法理解它。

我一直在关注this指南,但仍然无法让它做我需要的工作,即在我的表格中过滤结果并显示过滤后的结果。

我收到错误:“警告:mysqli_fetch_array()要求参数1为mysqli_result,布尔值在第53行的C:\ Users \ stuar \ Desktop \ xampp \ htdocs \ sss.php中给出”

这是我的代码:

<?php

if(isset($_POST['search']))
{
    $valueToSearch = $_POST['valueToSearch'];
    // search in all table columns
    // using concat mysql function
    $query = "SELECT * FROM `users` WHERE CONCAT(`id`, `fname`, `lname`, `age`) LIKE '%".$valueToSearch."%'";
    $search_result = filterTable($query);

}
 else {
    $query = "SELECT * FROM `users`";
    $search_result = filterTable($query);
}

// function to connect and execute the query
function filterTable($query)
{
    $connect = mysqli_connect("localhost", "root", "", "test_db");
    $filter_Result = mysqli_query($connect, $query);
    return $filter_Result;
}

?>

<!DOCTYPE html>
<html>
    <head>
        <title>PHP HTML TABLE DATA SEARCH</title>
        <style>
            table,tr,th,td
            {
                border: 1px solid black;
            }
        </style>
    </head>
    <body>

        <form action="php_html_table_data_filter.php" method="post">
            <input type="text" name="valueToSearch" placeholder="Value To Search"><br><br>
            <input type="submit" name="search" value="Filter"><br><br>

            <table>
                <tr>
                    <th>Id</th>
                    <th>First Name</th>
                    <th>Last Name</th>
                    <th>Age</th>
                </tr>

      <!-- populate table from mysql database -->
                <?php while($row = mysqli_fetch_array($search_result)):?>
                <tr>
                    <td><?php echo $row['Id'];?></td>
                    <td><?php echo $row['firstName'];?></td>
                    <td><?php echo $row['lastName'];?></td>
                    <td><?php echo $row['Age'];?></td>
                </tr>
                <?php endwhile;?>
            </table>
        </form>

    </body>
</html>

1 个答案:

答案 0 :(得分:0)

  

警告:mysqli_fetch_array()期望参数1为mysqli_result,   给定布尔值

这意味着,您的查询存在一些问题,因为query()返回boolean而不是结果。我认为布尔值为false。

如果您使用mysqli_error()功能,可以检查发生了什么。

在查询后放置此行,您将看到您的SQL查询有什么问题,然后您可以修复它。

print mysqli_error($connect);