我为我的网站创建了一个商店搜索表单,用户可以在其中选择多个区域。 我想在收到多个选定的分区选项后询问,如何返回用户所选选项的搜索结果?
e.g。用户可以选择US和JP,然后我的结果在US或JP中返回SHOP
的search.php
<select name="district" id="district">
<option value='US'>US</option>
<option value='UK'>UK</option>
<option value='JP'>JP</option> ... </select>
result.php
我知道通过使用以下方式获得多个选择:
foreach ($_GET['district'] as $selectedDistrict)
$district[] = $selectedDistrict;
但如何编写匹配的查询?
例如SELECT * FROM shop WHERE district = '$district'
?
答案 0 :(得分:2)
使用IN。
$in='"'.implode('","',$_GET['district']).'"';
$where_part="WHERE district IN($in)"
最终将得到如下查询:
SELECT * FROM shop WHERE district IN('JP','UK')
答案 1 :(得分:0)
将<select name="district" id="district">
替换为<select name="district[]" multiple="multiple" id="district">
,然后尝试此
<?php
$districtArray=$_POST['district'];
$sqlDistrictArray=join(',',$districtArray);
$findShopQuery="SELECT * FROM shops WHERE district IN ($sqlDistrictArray)";
?>