Как сопоставить несколько выбранных параметров в форме с базой данных по запросу? - PullRequest
1 голос
/ 11 марта 2012

Я создал форму поиска магазина для своего веб-сайта, где пользователи могут выбрать несколько районов.Я хочу спросить после получения нескольких выбранных опций для района, как вернуть результат поиска для выбранных пользователем опций?

например, пользователи могут выбрать США и JP, тогда мой результат вернет SHOP в США или JP

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 ]

2 голосов
/ 11 марта 2012

Использовать IN.

$in='"'.implode('","',$_GET['district']).'"';
$where_part="WHERE district IN($in)"

В результате появится запрос, подобный следующему:

SELECT * FROM shop WHERE district IN('JP','UK')
0 голосов
/ 11 марта 2012

Замените <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)";
  ?>
...