我有一个html表单,其中有两个输入字段 比如Caste(选项是SC,ST和OBC)和Direction(选项是北,南,东和西)。用户将使用复选框选择选项。
<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
我还有一个数据库(名称:PEOPLE),列名为Caste,Direction等。
现在我想根据用户的选择运行一个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 :(得分:2)
将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"]);
从数据库读取的位置,您可以将值从db转换为类似
的数组$caste_array = explode(",",$row->caste_id);
我希望这会有所帮助
答案 1 :(得分:0)
您可以使用WHERE IN
$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)")