根据用户输入显示数据库的结果

时间:2017-04-18 13:28:38

标签: php mysql

我为用户创建了一个表单,用于输入员工的名字和姓氏。当它提交的用户必须从employees数据库中选择所有条目,其中条目类似于employees表中的first_name列。当我这样做时,它不会显示在页面上,所以我相信一定有一些我找不到的错误。

        <!doctype html>
<html lang="en">
<head>
    <link href="employeeStyles.css" rel="stylesheet">
    <title>Employee Search</title>
</head>
<body>
    <div id="employeeArea">
        <h1>Employee Search Results</h1>
        <?php
        $firstName = $_GET['firstName'];
        $lastName = $_GET['lastName'];
        $resultsNumber = $_GET['resultsNumber'];


        @ $db = new mysqli('localhost','root','','employees');

        $firstName = $db->real_escape_string($firstName);
        $lastName = $db->real_escape_string($lastName);
        $resultsNumber = $db->real_escape_string($resultsNumber);

        if (mysqli_connect_errno()){
            echo 'Error: Could not connect to the database. Please try again later. </body></html>';
            exit;
        }
        $query = "SELECT * FROM employees WHERE first_name LIKE .$firstName.'%'";
        $result = $db->query($query);
        $numResults = $result->num_rows;

        echo 'Number of results found '.$numResults;

        for ($i=0; $i<$result; $i++){
            $row = $result->fetch_assoc();
            echo $row ['first_name']."<br>";
            echo $row ['last_name']."<br>";
            echo $row ['emp_no']."<br>";
            echo $row ['hire_date']."<br>";
            echo $row ['birth_date']."<br>";
            echo $row ['gender']."<br>";
        }

        $db->close();
        ?>
    </div>
</body>

1 个答案:

答案 0 :(得分:1)

嗯,问题出现在您的查询中。

您传递给查询的变量不会包含在引号内。 试试:

$query = "SELECT * FROM employees WHERE first_name LIKE '" . $firstName . "%'";
相关问题