搜索和结果页面

时间:2012-06-24 17:37:41

标签: php search

我想通过搜索脚本获得一些帮助。关于网站的一点:我有注册用户,当他们注册时,他们选择他们的用户类型(即保姆,家庭护理,日托)。现在我有一个搜索栏,访问者可以输入他们的邮政编码,结果页面显示数据库中包含该邮政编码的所有内容。 目前的形式:

<form id="form1" name="form1" method="get" action="results.php">
    <p>
      <label>Search for<input type="text" name="Search" id="Search"  /></label>
      <label>
        <select name="Field" id="Field">
          <option value="Zip">Zip</option>   
        </select>
      </label>
      <input type="submit" name="button" id="button" value="Search" />
   </p>

我想要做的是让用户输入他们的邮政编码并从下拉列表中选择Nanny,Homecare或Daycare,结果只显示搜索结果中的那种类型,而不是该zip中的所有内容。< / p>

我希望表单看起来如何:

<form id="form1" name="form1" method="get" action="results.php">
    <p>
      <label>Search for<input type="text" name="Search" id="Search"  value="Zip" /></label>
      <label>
        <select name="Field" id="Field">
          <option value="Nanny">Nanny</option>
          <option value="Homecare">Homecare</option>
          <option value="Childcare">Childcare</option>   
        </select>
      </label>
      <input type="submit" name="button" id="button" value="Search" />
    </p>
</form>

php:

<?php
require_once('scripts/_config.php');
if(isset($_GET['Field'])){
$searchQ1=mysql_query("SELECT `First_Name`,`Last_Name`,`Nanny`,`Homecare`,`Childcare`,`City`,`State`,`Zip`,`userID` FROM `sys_profile` WHERE `".$_GET['Field']."` LIKE '".$_GET['Search']."';");
}else{
$searchQ1=mysql_query("SELECT `First_Name`,`Last_Name`,`Nanny`,`Homecare`,`Childcare`,`City`,`State`,`Zip`,`userID` FROM `sys_profile` WHERE `userID`!=0;");
}
?>

如何更改php以使搜索结果仅在输入的zip中显示保姆,或在输入的zip中显示育儿等?现在,php显示该zip中的所有内容,当我将表单更改为第二个示例时,它仍然无效,因为我不确定如何调整搜索查询。

1 个答案:

答案 0 :(得分:0)

您必须在查询中包含第二个约束AND。将$_GET['Search']中包含的Zip与数据库中的Zip文件进行比较,并将选择的值与数据库中用户类型的下拉列表进行比较。

您的数据库看起来如何?特别是,如何保存用户类型信息?根据您发布的查询猜测,这些是布尔值(Nanny,Homecare,Childcare)?

编辑:当Nanny,Homecare和Childcare是布尔值时,可能的查询是:

$sql = "SELECT First_Name,Last_Name, City, State, userID FROM sys_profile WHERE Zip = " . $_GET['Search'] . " AND $_GET['Field'] = true";

因此,检查Zip是否与搜索字符串匹配,如果所选下拉项目的值为true,则检查。