简单搜索程序 PHP/SQL


Simple Search Program PHP/SQL

固定:感谢大家的帮助,对于那些需要从某个地方开始的人,你可以用这个作为参考

我正在尝试学习PHP SQL HTML,我很难正确运行我的代码,你能帮帮我吗?我已经看了很多例子,但我无法让它工作,我的 html 表单没有出现。这是一个程序,它将搜索用户在搜索表单中输入的内容,并在sql数据库中查找它。

     <html>
  <head>
    <meta  http-equiv="Content-Type" content="text/html;  charset=iso-8859-1">
    <title>Search  Contacts</title>
  </head>
  <body>
    <h3>Search  Contacts Details</h3>
    <p>You  may search either by first or last name</p>
    <form  method="post" action="#"  id="searchform">
      <input  type="text" name="name">
      <input  type="submit" name="submit" value="Search">
    </form>
<?php
$servername = "xxx";
$username = "xxx";
$password = "xxx";
$dbname = "Staff";
$myquery = $_POST["name"];
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());

} SQL查询

if (!empty($_POST["name"])) {
    $sql = "select ID, FirstName, LastName, Email, PhoneNumber from Userlist where FirstName LIKE '%". $myquery  ."%'" ;
    //Get query on the database
    $result = mysqli_query($conn, $sql);
    //Check results
    if (mysqli_num_rows($result) > 0)
    {
      while($row = mysqli_fetch_assoc($result))
        {
          echo "id:" . $row["ID"] . 
               " - Name: " . $row["LastName"]. " " . $row["FirstName"]. // Correct here 
               " - Email: " . $row["Email"] . 
               " - PhoneNumber: " . $row["PhoneNumber"]. "<br>";
        }
    } else {
        echo "0 results";
    }
}
    mysqli_close($conn);
?>
</body>
</html>

您需要使用 ' 更正 SQL 语句以LIKE

$sql = "select ID, FirstName, LastName, Email, PhoneNumber  
       from Userlist where FirstName LIKE '%". $myquery  ."%'" ;

另外,由于您$myquery变量$_POST,因此我认为您应该执行以下操作:

if (!empty($_POST["name"])) {
    $myquery = $_POST["name"];
    $sql = "select ID, FirstName, LastName, Email, PhoneNumber 
           from Userlist where FirstName LIKE '%". $myquery  ."%'" ;
    //Get query on the database
    $result = mysqli_query($conn, $sql);
    //Check results
    if (mysqli_num_rows($result) > 0)
    {
      while($row = mysqli_fetch_assoc($result))
        {
          echo "id:" . $row["ID"] . 
               " - Name: " . $row["LastName"]. " " . $row["FirstName"]. // Correct here 
               " - Email: " . $row["Email"] . 
               " - PhoneNumber: " . $row["PhoneNumber"]. "<br>";
        }
    } else {
        echo "0 results";
    }
}

并确保你的表单操作与你的PHP代码所属的当前页面相同。

if (!$conn) { } 之后缺少右大括号

尝试对每行输出使用回显。其次要注意'建议'。第三,为了安全起见,转义你的帖子变量。