php - 带复选框的多重搜索

标签 php mysql html

我在使用复选框进行搜索时遇到一些问题。 基本上,我有一些有注册日期的数据,我需要按月份进行搜索并根据选定的月份检索数据。

我正在使用 php 和 mysql。

这里我有一个简单的 html:

<小时/>
<ul>
<li><input type="checkbox" name="month_in" value="1" />January</li>
<li><input type="checkbox" name="month_in" value="2" />February</li>
<li><input type="checkbox" name="month_in" value="3" />March</li>
<li><input type="checkbox" name="month_in" value="4" />April</li>
<li><input type="checkbox" name="month_in" value="5" />May</li>
<li><input type="checkbox" name="month_in" value="6" />June</li>
<li><input type="checkbox" name="month_in" value="7" />July</li>
<li><input type="checkbox" name="month_in" value="8" />August</li>
<li><input type="checkbox" name="month_in" value="9" />September</li>
<li><input type="checkbox" name="month_in" value="10" />October</li>
<li><input type="checkbox" name="month_in" value="11" />November</li>
<li><input type="checkbox" name="month_in" value="12" />December</li>
<li><input type="submit" value="Search"></li>
</ul>
<小时/>

以及部分php+mysql代码:

$search=$_POST["month_in"];

$qry=mysql_query("select * from table where MONTH(dor) like '%{$search}%'");

问题是,上述代码仅在用户仅检查一个月时才有效,但如果用户检查 2 个或更多个月,则仅检索最高月份的信息(我的意思是,如果用户检查了 1 月、3 月、4 月和 8 月,则它给出仅八月的结果)。

最佳答案

问题是,即使用户选择了多个复选框,最后选择的复选框的值也会被发送回您的 php 脚本。如果您想以数组格式发布多个值,请将复选框的名称属性从 name="month_in" 更改为 name="month_in[]"。所以您将收到一个月份的数字数组。

 array(10, 12);

 //fetch and make it a comma separated string using implode() php string function
 $csvSearch = implode(',', $_POST["month_in"]);
 $qry=mysql_query("SELECT * FROM table WHERE FIND_IN_SET(dor, '$csvSearch')");

关于php - 带复选框的多重搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11981699/

相关文章:

php mysql查询结果数组和foreach循环

php - 多少kb有一个mb,有人说1000,有人说1024

php - MySQL 使用 LEFT JOIN 查询所有记录而不仅仅是一条记录

html - 为什么 &lt;iframe&gt; 中的 .txt 文件被下载而不是显示?

javascript - Bootstrap Carousel Caption 在转换完成后移动

php - MySQL INSERT 查询在 Phpmyadmin 中有效,但在 PHP 中无效

Php MySQL 查询在资源有限的托管中内存不足

sql - MySQL 使用 OR 执行多个查询

php - 确定星期一和星期五代码停止工作

html - 单击链接后如何在后台播放音频文件? (无嵌入)