Php 搜索 100% 不工作

标签 php html search

我有以下搜索脚本,但它不是 100% 有效。我的目标是有 4 个文本框来搜索名为 users 的表中的记录,并且只有在提交搜索按钮后才必须显示该表,但是在页面加载的那一刻,如果搜索一条记录,它显示我表中的所有记录,而不仅仅是我正在搜索的记录

任何建议都会很有帮助

<form id="form1" name="form1" method="post" action="View.php">
<label for="from">First Name</label>
<input name="first" type="text" id="first" size="10" value="<?php echo $_REQUEST["first"]; ?>" />
<label for="to">Last Name</label>
<input name="last" type="text" id="last" size="10" value="<?php echo $_REQUEST["last"]; ?>"/>
 <label>Email:</label>
<input type="text" name="email" id="string" value="<?php echo stripcslashes($_REQUEST["email"]); ?>" />
<label>Company</label>
<select name="company">
<option value="">--</option>

    <?php
        include("config.php");
        $sql = "SELECT * FROM users GROUP BY company ORDER BY company";
        $sql_result = mysql_query ($sql, $dbConn ) or die ('request "Could not execute SQL query" '.$sql);
        while ($row = mysql_fetch_assoc($sql_result)) {
            echo "<option value='".$row["company"]."'".($row["company"]==$_REQUEST["company"] ? " selected" : "").">".$row["company"]."</option>";
        }
    ?>
    </select>
    <input type="submit" name="button" id="button" value="Filter" />
      </label>
      <a href="View.php"> 
      reset</a>
    </form>
    <br /><br />
    <table width="700" border="1" cellspacing="0" cellpadding="4">
      <tr>
        <td width="90" bgcolor="#CCCCCC"><strong>First Name</strong></td>
        <td width="95" bgcolor="#CCCCCC"><strong>Last Name</strong></td>
        <td width="159" bgcolor="#CCCCCC"><strong>Company</strong></td>
        <td width="191" bgcolor="#CCCCCC"><strong>Email</strong></td>
        <td width="113" bgcolor="#CCCCCC"><strong>Contact Number</strong></td>
        <td width="113" bgcolor="#CCCCCC"><strong>Position</strong></td>
        <td width="113" bgcolor="#CCCCCC"><strong>How do you know the person</strong></td>
        <td width="113" bgcolor="#CCCCCC"><strong>Comment</strong></td>
      </tr>
    <?php

if($_POST["button"])
{

if ($_REQUEST["first"]<>'') {
    $search_first = " AND fname LIKE '%".mysql_real_escape_string($_REQUEST["fname"])."'";  
}
if ($_REQUEST["last"]<>'') {
    $search_last = " AND lname='".mysql_real_escape_string($_REQUEST["last"])."'";  
}
if ($_REQUEST["email"]<>'') {
    $search_email = " AND email='".mysql_real_escape_string($_REQUEST["email"])."'";    
}
if ($_REQUEST["company"]<>'') {
    $search_company = " AND company='".mysql_real_escape_string($_REQUEST["company"])."'";  
}
else {
    $sql = "SELECT * FROM users WHERE id>0".$search_first.$search_last.$search_email.$search_company;
}

$sql_result = mysql_query ($sql, $dbConn) or die ('request "Could not execute SQL query" '.$sql);
if (mysql_num_rows($sql_result)>0)
 {
    while ($row = mysql_fetch_assoc($sql_result)) 
    {
?>
  <tr>
    <td><?php echo $row["fname"]; ?></td>
    <td><?php echo $row["lname"]; ?></td>
    <td><?php echo $row["company"]; ?></td>
    <td><?php echo $row["email"]; ?></td>
    <td><?php echo $row["contactnumber"]; ?></td>
    <td><?php echo $row["position"]; ?></td>
    <td><?php echo $row["howdoyouknow"]; ?></td>
    <td><?php echo $row["comment"]; ?></td>
  </tr>
<?php
    }
} else {
?>
<tr><td colspan="5">No results found.</td>
<?php   
}
}
?>

</table>

最佳答案

请移除else条件,

 else {
   $sql = "SELECT * FROM users WHERE id>0".$search_first.$search_last.$search_email.$search_company;
  }

use like below i.e without  else tag

 $sql = "SELECT * FROM users WHERE id>0".$search_first.$search_last.$search_email.$search_company;

关于Php 搜索 100% 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19701723/

相关文章:

html - 在 div 的中心放置一个按钮

php - IE9 Ajax成功但无响应体

具有相同类输入的 JavaScript 多事件处理程序

php - 构建数据库驱动的用户系统时使用最少的 MySQL 查询

html - 使用不同的用户代理加载 iframe 内容

algorithm - 如何理解这个优先队列深度优先搜索?

java - svn下无法在eclipse中找到或编辑java类

c++ - std::search on single-pass 范围

php - PHP的输入类错误处理?

php - 根据另一个表中最后使用的结果对表结果进行排序