php - 使用复选框值进行sql查询

标签 php mysql 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

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

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

最佳答案

为复选框赋予 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);

希望这有帮助

关于php - 使用复选框值进行sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25832454/

相关文章:

php - MySQL 错误 : Can't create table (errno: 121 "Duplicate key on write or update")

php - 通过 DateTime::createFromFormat 创建 '2016.04.30 PM 7:30' 的 PHP DateTime 实例的正确格式是什么?

php ssh读取输出问题

php - 软件与数据库位于不同的服务器上

php - 为什么 MySQL INSERT 语句无法正常运行

sql - 如何在 Postgres 中使用 upsert

php - 使用 mySQL 和 PHP 显示来自多个表的数据

php - 通过将记录存储到数组中获取表中缺失的 ID,并使用 for 循环比较该组数字

MySQL - 将表 1 的列与表 2 和表 3 中两列的平均值连接

c# - 表数据对比-Oracle