php - 复选框搜索 php

标签 php mysql search checkbox

我已经列出了公司名单,包括他们的领域和规模。我做了几个复选框来过滤掉它们

<tr>
<td><input type="checkbox" name="field[]" value="Water">Water </td>
<td><input type="checkbox" name="size[]" value="Small">Small </td>
</tr>
<tr>
<td><input type="checkbox" name="field[]" value="Energy">Energy </td>
<td><input type="checkbox" name="size[]" value="Medium">Medium </td>
</tr>
<tr>
<td><input type="checkbox" name="field[]" value="Wind">Wind </td>
<td><input type="checkbox" name="size[]" value="Big">Big </td>
</tr>
<tr>
<td><input type="checkbox" name="field[]" value="Earth">Earth </td>

这是 PHP 复选框搜索:

if(isset($_REQUEST['submit']))
{               

    //if( count($_POST['field']) > 0)
    if (isset($_POST['field']))
    {       
        $field =  implode(',',$_POST['field']);
        $str = "AND company_field LIKE '$field'";
    }
    else
    {
        $str = "";
    }

    //if( count($_POST['size']) > 0 )
    if (isset($_POST['size']))
    {           
        $size =  implode(',',$_POST['size']);
        $str1 = "AND company_size LIKE '$size'";
    }
    else
    {
        $str1 = "";
    }
    $run = "SELECT * FROM company WHERE 1=1 ".$str.$str1;
    $reslt = mysql_query($run);

如果我没有选择任何列或选择每一列中的一列,则该复选框可以正常工作。 但是当我在 1 列中选择 2 个或更多时,查询将如下所示: SELECT * FROM company_info WHERE 1=1 AND company_size LIKE 'M, B' 我知道这个查询是错误的,应该是 其中 1=1 AND company_size LIKE 'M' 或 company_size LIKE 'B'。 所以我正在寻找解决方案或代码。 任何帮助表示赞赏。谢谢!

最佳答案

您可以使用,

$field = implode(',',$_POST['field']); $str = "AND company_field IN (".$field.")";

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

相关文章:

php - 查询失败: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected

php - mysql字符串搜索算法查询帮助

PHP 中的 SoapClient 错误回退

生成代码的 PHP 类图

mysql - 如何从MySQL获取特定标签的文章

Javascript - 如何从所有开始和结束字符串匹配实例中创建一个数组 - 在字符串中找到

mysql - 在 UNION 中使用 Order By NULL

mysql - PHP/MySQL 如何触发给客户的短信或邮件

postgresql - unicode字符串搜索

java - 数组搜索代码