【发布时间】:2014-07-07 01:27:55
【问题描述】:
我制作了一份公司清单,包括他们的领域和规模。我做了几个复选框以过滤掉它们
<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' 而且我知道这个查询是错误的,应该是
WHERE 1=1 AND company_size LIKE 'M' OR company_size LIKE 'B'。
所以我正在为此寻找解决方案或代码。
任何帮助表示赞赏。谢谢!
【问题讨论】: