我想通过搜索脚本获得一些帮助。关于网站的一点:我有注册用户,当他们注册时,他们选择他们的用户类型(即保姆,家庭护理,日托)。现在我有一个搜索栏,访问者可以输入他们的邮政编码,结果页面显示数据库中包含该邮政编码的所有内容。 目前的形式:
<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中的所有内容,当我将表单更改为第二个示例时,它仍然无效,因为我不确定如何调整搜索查询。
答案 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,则检查。