【问题标题】:sql query using checkbox value使用复选框值的sql查询
【发布时间】:2017-03-31 18:19:05
【问题描述】:

我有一个 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

我还有一个数据库(名称: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]' ")

但如果他们使用多个选项,那么我应该如何进行。

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    给这样的复选框赋予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);
    

    希望对你有帮助

    【讨论】:

    • 请给我一个例子 (mysql_query("select from .........")) 如何使用 $caste_array 进行查询。
    • 使用 foreach-loop 迭代 $caste_array 中的值,在循环内编写 sql 查询
    【解决方案2】:

    你可以使用 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)")
    

    【讨论】:

    • 请注意,您已经回答了 2014 年 9 月的问题。我不会介意只有在答案质量很好的情况下。你的质量不太好。请使用参数化查询并停止使用mysql_ 函数。它们已被正式弃用。
    猜你喜欢
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多