SQL-запрос, используя значение флажка

У меня есть HTML-форма, где есть два поля ввода
скажем, Каста (варианты SC, ST и OBC) и Направление (варианты: север, юг, восток и запад). Пользователи будут выбирать опции, используя флажок.

<input name="ct" type="checkbox"  value="SC">SC
<input name="ct" type="checkbox"  value="ST">ST
<input name="ct" type="checkbox"  value="OBC">OBC

<input name="dr" type="checkbox"  value="N">North
<input name="dr" type="checkbox"  value="S">south
<input name="dr" type="checkbox"  value="E">East
<input name="dr" type="checkbox"  value="W">West

У меня также есть база данных (имя: ЛЮДИ) с именем столбца Каста, Направление и т. Д.

Теперь я хочу запустить SQL-запрос на основе выбора пользователя. Например

mysql_query("select * from PEOPLE where Caste='option/options selected by user' and Direction= 'option/options selected by user' ")

Если пользователь выберет один вариант из каждого поля, это не проблема для меня,

mysql_query("select * from PEOPLE where Caste='$_POST[ct]' and Direction= '$_POST[dr]' ")

но если они используют несколько вариантов, то как мне поступить.

0

Решение

Дать name приписать флажки, как это

<input type="checkbox" name="caste[]" value="SC" />
<input type="checkbox" name="caste[]" value="ST" />
<input type="checkbox" name="caste[]" value="OBC" />

На вашей стороне PHP вы можете использовать функцию Implode для формирования caste в строку, как показано ниже (учитывая, что вы делаете POST)

$caste_id = implode(",",$_POST["caste"]);

Где вы читаете из базы данных, вы можете преобразовать значение из базы данных в массив, как это

$caste_array = explode(",",$row->caste_id);

надеюсь, это поможет

2

Другие решения

Вы можете использовать ГДЕ В

$caste_string = implode('","', $_GET['ct']);
$caste_string = '"'.$caste.'"';

$dir_string = implode('","', $_GET['dr']);
$dir_string = '"'.$caste.'"';mysql_query("select * from PEOPLE WHERE Caste IN ($caste_string) AND Direction IN ($dir_string)")
0

По вопросам рекламы [email protected]