PHP和HTML表单用于搜索具有用户输入的DB

时间:2017-08-02 21:07:37

标签: php html mysql forms

我有一个我用一些随机数据生成的数据库,然后我才能正常工作并输入真实数据。我在php DB中有数据,我正在尝试创建一个搜索表单,它将拉出数据库并在用户在搜索栏中输入名称时显示结果。理想情况下,这样可以按姓氏搜索客户,并且匹配该名称的数据库中的所有人都显示为结果。我有一个简单的HTML页面,其中包含以下表单: //表格搜索

<html>
<body>
<form action="php_db.php">
<Surname: <input type="text" name="name">
<button type="submit">Submit</button>  
</form>
</body>
</html>

接下来是php页面,我连接到数据库并进行搜索。为了安全起见,我删除了所有数据库信息,但我可以确认它已成功连接。我的问题是结果没有按要求显示。我尝试过使用我能找到的任何参考资料而且我遗漏了一些东西。我知道我的问题出现在''表'后面,好像我在返回结果后没有包含任何内容而没有匹配搜索。我也猜测我在结果显示的if部分遗漏了一些东西。我已经坚持了一段时间,我将不胜感激。

$conn = new mysqli($servername, $username, $password, $dbname);
  $sql = "SELECT FNAME,LNAME FROM `table` WHERE 'LNAME' LIKE 
 '%$search_term%'";
  $result = $conn->query($sql);

if ($result->num_rows > 0) {
    //output data of each row
    while ($row = $result->fetch_assoc()) {
        printf ("%s, %s<br>", $row["LNAME"], $row["FNAME"]);
    }

    if ($result->num_rows = 0) {
        echo "0 results <br";
    }
}

2 个答案:

答案 0 :(得分:0)

尝试将sql编辑为以下内容:

 "SELECT FNAME, LNAME FROM table WHERE LNAME LIKE 
     '%".$search_term."%'"

此外,您应该真正考虑将用户输入的预准备语句直接用于这样的查询。

答案 1 :(得分:0)

尝试替换你的sql

$sql = "SELECT FNAME,LNAME FROM `table` WHERE LNAME LIKE '%".$search_term."%'";