嗨,我是新的PHP和与搜索框努力,我创建了一个表格如下php多选项搜索查询....?
<form method="post" action="search.php">
<select name="purpose">
<option value="" selected="selected">-any-</option>
<option value="For Sale">For Sale</option>
<option value="For Rent">For Rent</option>
</select>
<select name="type">
<option value="" selected="selected">-any-</option>
<option value="Bungalow">Bungalow</option>
<option value="Apartment">Apartment</option>
</select>
<select name="location">
<option value="" selected="selected">-any-</option>
<option value="Norway">Norway</option>
<option value="Itley">Itley</option>
</select>
<input type="submit" value="Search">
</form>
的search.php
我试图与这些奎雷斯但得到的问题
$purpose=$_POST['purpose'];
$type=$_POST['type'];
$location=$_POST['location'];
和
,如果我把这样的查询
SELECT * FROM test WHERE purpose='$purpose' AND location='$location' AND type='$type'
那么它不是一个结果过滤一个其显示为空白
,如果我把OR这样的查询
SELECT * FROM test WHERE purpose='$purpose' OR location='$location' OR type='$type'
然后过滤混合导致
我想,如果所有选择它的过滤器(目的> >型>>位置),并且如果一个选定然后通过这一点,但确切的结果 别的过滤显示
Result not found!
先生我正在这样做,但它显示错误
$ qry =“SELECT * FROM test WHERE 1 = 1”;
if($ purpose!=“”) $ qry。=“AND purpose ='$ purpose'”;
if($ location!=“”) $ qry。=“AND location ='$ location'”;
if($ type!=“”) $ qry。=“AND type ='$ type'”;
而($行= mysql_fetch_array($ SQL))
回波$行[ '目的'];
echo $ row ['location'];
echo $ row ['type'];
我想如果不匹配没有其他人发现显示结果它过滤所有并逐一
+1我用这个方法太,但mysql_real_escape_string()藏汉 – Waygood 2012-08-07 10:22:54
这是正确的。应始终使用mysql_real_escape_string()。我没有说的原因是他说他是PHP的新手,所以我不知道他是否启用了magic_quotes。所以,如果启用,他会遇到mysql_real_escape_string()函数的问题。 – elxordi 2012-08-07 10:25:51
先生我这样做,但它显示错误$ sql = array($ purpose,$ location,$ type);如果(!empty($ purpose)){ $ sql [] =“purpose ='$ purpose'”; } if(!empty($ Pro_type)){ $ sql [] =“type ='$ type'”; ($ empty($ location)){ } $ sql [] =“location ='$ location'”; } $ sql = implode('AND',$ sql); $ sql =“SELECT * FROM test”。 (!empty($ sql)?“WHERE”。$ sql:''); – 2012-08-07 13:37:25