検索ボックスを試しています。次のようなフォームを作成しました。
<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'];
AND クエリを次のように配置すると、次のようになります。
SELECT * FROM test WHERE purpose='$purpose' AND location='$location' AND type='$type'
その後、結果を1つずつフィルタリングせず、空白に表示されます。
OR
次のようなクエリを入力した場合:
SELECT * FROM test WHERE purpose='$purpose' OR location='$location' OR type='$type'
次に、混合結果をフィルタリングします。
すべてが選択されている場合はフィルター(目的>>タイプ>>場所)が必要であり、1つが選択されている場合はこれでフィルター処理されますが、正確な結果が表示されます
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'";
while ($row = mysql_fetch_array($sql))
echo $row['purpose'];
echo $row['location'];
echo $row['type'];
一致しない場合は、表示結果が見つからない場合、すべておよび1つずつフィルタリングします。