PHP search MySQL table


PHP search MySQL table

我已经构建了这个小脚本,在我的数据库中搜索一个表,但是对于我的生活,我似乎找不到任何地方如何显示表信息,如果有人只搜索电子邮件。我希望能够只搜索电子邮件,并有它显示从数据库的电子邮件地址的所有信息。任何想法吗?

<?php
$profile = $_POST["profile"];
mysql_connect ("", "", "");
mysql_select_db ("");
$query = "SELECT * FROM `profile` WHERE `email`='$email' and `about`='$about' and 
`age`='$age' and `sex`='$sex' and `website`='$website'";

$result = mysql_query ($query);
if ($result) {
while($row=mysql_fetch_row($result))
{
echo $row[0],$row[1],$row[2];
}
}else{
}
?>
<form action="profile.php" method="post">
<input type="text" name="search"><br>
<input type="submit">

非数字字段必须用单引号括起来。

<?php  
  $search = $_POST["search"];
  mysql_connect("localhost", "username", "password") OR die (mysql_error());
  mysql_select_db ("your_db_name") or die(mysql_error());
  $query = "SELECT * FROM `profile` WHERE `email`='$search'";
  $result = mysql_query($query) or die (mysql_error());
  if($result) 
   {    
      while($row=mysql_fetch_row($result))   
       {      
          echo $row[0],$row[1],$row[2];   
       }    
     }
   else
     { 
       echo "No result";  
     }
 ?>
<form action="profile.php" method="post">  
  <input type="text" name="search"><br>  
  <input type="submit">
</form>   
编辑:

在上面的代码片段中,您有一个text字段和一个submit button,因此您可以使用"search"字段值一次搜索任何一个数据库字段。

如果你想在电子邮件上搜索,那么sql查询将是:

SELECT * FROM `profile` WHERE `email`='$search'";

您可以使用OR运算符搜索一个或多个字段:

 SELECT * FROM `profile` WHERE `email`='$search' or about`='$search'";

可以使用LIKE运算符搜索字符串

SELECT * FROM `profile` WHERE `email` LIKE '%$search%'";

最简单的方法是编写另一个查询

 $query = "SELECT * FROM profile WHERE email='$email'";