PHP 搜索无法 100% 工作


Php search not working 100%

我有以下搜索脚本,但它不能 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 {
   $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;

你怎么期望这个:

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

当您在IF中声明 $search_Company 时甚至可以工作

此外,我确实认为在您的情况下甚至不需要else,因为

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

如果不执行IF语句就不起作用