나는 회사의 목록을 자신의 필드와 크기를 포함시켜 만들었습니다. 나는체크 박스 검색 php
<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'
이어야합니다. 그래서 해결책이나 코드를 찾고 있습니다. 도움을 주시면 감사하겠습니다. 감사!
내가 그것을 시도하려고하지만 쿼리는 다음과 같이이다 : 은 "SELECT * 1 = 1 AND가 LIKE ('M, B')를 company_size 곳에서 company_info"그것은하지 않습니다 "* 회사의 정보가 어디서 왔는가에 따라 달라진다. 왜냐하면 각 요소가 따옴표로 덮여 있기 때문이다. – SlashBunny
$ field =" 'company_info where 1 = 1 AND company_size LIKE ('M ', B' ".implode (" ',' ', $ _POST ['field ']). "'" $ str = "AND company_field IN (". $ field. ")"; – AbhishekTaneja
은 매력처럼 작동합니다. 고마워요! – SlashBunny