【问题标题】:PHP search MySQL tablePHP搜索MySQL表
【发布时间】:2011-11-23 01:31:54
【问题描述】:

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

<?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 html css mysqli


    【解决方案1】:

    查询中的非数字字段必须用单引号括起来。

    <?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>   
    

    编辑:

    在上面的 code-sn-p 中,您有一个 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 的最佳方式?
    • @Pxlc - 是的!它将显示结果。请参阅我已编辑我的帖子。
    • 你确定这有效吗?这对我不起作用,请尝试 example@example.com arnid.us/profile.php
    • @Pxlc - 请在给定链接的开篇帖子中发布代码。
    • 我仍然没有看到任何结果。我使用 Heroku 作为主机,但这不会导致任何后端问题。我将原来的 SELECT 替换为 SELECT * FROM profile WHERE email='$profile'";
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 2010-12-25
      相关资源
      最近更新 更多