嗨,我是新的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