我有一个我用一些随机数据生成的数据库,然后我才能正常工作并输入真实数据。我在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";
}
}
答案 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."%'";