如何通过查询将表单中的多个选定选项与数据库进行匹配?

时间:2012-03-11 10:49:35

标签: php html sql database option

我为我的网站创建了一个商店搜索表单,用户可以在其中选择多个区域。 我想在收到多个选定的分区选项后询问,如何返回用户所选选项的搜索结果?

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'

2 个答案:

答案 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)";
  ?>