使用php在数据库中搜索关键字,但只能搜索名称

使用php在数据库中搜索关键字,但只能搜索名称,php,mysql,search,Php,Mysql,Search,这是我的主文件上的“我的搜索”按钮: <form action="search_keyword.php"><br> Please enter a key word to search for:<br> <input type="text" name="keyword"><br> <input type="submit" value="Submit"><br> </form> 请输入要

这是我的主文件上的“我的搜索”按钮:

<form action="search_keyword.php"><br>
  Please enter a key word to search for:<br>
  <input type="text" name="keyword"><br>

  <input type="submit" value="Submit"><br>
</form>

请输入要搜索的关键字:


我试图在数据库中搜索诸如姓名(例如Peter)和角色(例如Student)之类的关键字,但我只能搜索姓名:

<?php

include "db_conect.php";
$keywordfromform = $_GET["keyword"];


//search the database
echo "<h2>Show all results for:  $keywordfromform</h2>";

$sql = "SELECT ID, Name ,Role, Responsibilities, Age, Date_of_birth, Email FROM person WHERE Name LIKE '%" . $keywordfromform  . "%'";
$result = $mysqli->query($sql);

if ($result->num_rows > 0) {
   // output data of each row
    while($row = $result->fetch_assoc()) {
       echo  "ID: ". $row["ID"]. " - " . $row["Name"]. ", " . $row["Role"]. ". " . $row["Responsibilities"]. " (Age-" . $row["Age"]. " Date of birth -" . $row["Date_of_birth"]. ") Email: ". $row["Email"]."<br>";
    }
} else {
    echo "0 results";
}

?>
<a href="connect.php">Return to main page</a>

将查询更改为:

$sql = "SELECT ID, Name ,Role, Responsibilities, Age, Date_of_birth, Email FROM person WHERE Name LIKE '%" . $keywordfromform  . "%' OR Role LIKE '%" .$keywordfromform  . "%'";
这样,您将搜索名称和角色


我还建议您在表单中添加method=“POST”,以便以更安全的方式发送值。这意味着您将PHP上的$_GET[“keyword”]更改为$_POST[“keyword”]

为什么你只能搜索名字?在另一个字段中使用WHERE子句。添加另一个Calube也注意到代码标记图标是两个花键{}请考虑适当地避开查询以避免有一些邪恶的演员删除您的整个数据库。参考文献-----并且亲自动手。没有比“学习”更好的方法了。如果您重视您的工作和数据库,也要使用准备好的语句;-)