根据复选框值从数据库中搜索和检索值

时间:2016-05-30 08:29:11

标签: php html mysql

我正在尝试创建一个搜索页面,该页面能够搜索具有特殊技能的候选人。

前端技能有多个复选框。我使用此函数将复选框值存储为逗号分隔值:

HTML

  <table border="0" cellpadding="1" cellspacing="0">
   <tbody><tr>
   <td align="left"><input value="Arts" id="expert_1" name="experts[]" type="checkbox"><label for="expert_1"><span>Arts &amp; Performing Arts&nbsp;&nbsp;</span></label></td>
       <td align="left"><input value="Environment"  id="expert_4" name="experts[]" type="checkbox"><label for="expert_4"><span>Environment&nbsp;&nbsp;</span></label></td>
       <td align="left"><input value="Religious" id="expert_7" name="experts[]" type="checkbox"><label for="expert_7"><span>Religious</span></label></td>
      </tr>
      <tr>
       <td align="left"><input value="Associations" id="expert_2" name="experts[]" type="checkbox"><label for="expert_2"><span>Associations</span></label></td>
       <td align="left"><input value="Foundation"  id="expert_5" name="experts[]" type="checkbox"><label for="expert_5"><span>Foundation</span></label></td>
       <td align="left"><input value="Social Services"  id="expert_8" name="experts[]" type="checkbox"><label for="expert_8"><span>Social Services</span></label></td>
      </tr>
      <tr>
       <td align="left"><input value="Education"  id="expert_3" name="experts[]" type="checkbox"><label for="expert_3"><span>Education</span></label></td>
       <td align="left"><input value="Health Care"  id="expert_6" name="experts[]" type="checkbox"><label for="expert_6"><span>Health Care</span></label></td>
       <td>&nbsp;</td>
      </tr>
     </tbody></table>

PHP

$experts = $_POST['experts'];
$chk = '';
foreach($experts as $expert)  
{  
  $chk .= $expert.",";  
} 

我将$ chk存储在数据库中。

现在如何从已检查Access字段的数据库中检索用户?

1 个答案:

答案 0 :(得分:-1)

您的数据库结构不适合此类查询。

我无法想到使用SQL查询实现这一目标的可行方法,您应该从数据库中检索所有记录,然后在php中选择值,但这是一个非常糟糕的情况:php检查比数据库一。

您是否可以在数据库中为每个复选框添加一个布尔字段?这将是一个更好的数据库结构,它将使您的查询更容易