Php 使用多个复选框返回MySQL结果

Php 使用多个复选框返回MySQL结果,php,html,mysql,search,checkbox,Php,Html,Mysql,Search,Checkbox,我试图创建一个搜索函数,允许用户选择多个类别,选择submit,然后php将返回与所选类别匹配的mysql结果 我希望在没有AJAX或jQuery的情况下实现这一点,但如果需要,我将使用它们。我对PHP的世界比较新,所以我认为我走上了正确的道路,但是我希望得到一些帮助来纠正这个错误 HTML 按类别筛选 艺术/文化 长者 青年 动物 社区 危机支持 环境 基于信仰 残疾人 我将submit的值更改为1 <input type="submit" name="submit" id="fil

我试图创建一个搜索函数,允许用户选择多个类别,选择submit,然后php将返回与所选类别匹配的mysql结果

我希望在没有AJAX或jQuery的情况下实现这一点,但如果需要,我将使用它们。我对PHP的世界比较新,所以我认为我走上了正确的道路,但是我希望得到一些帮助来纠正这个错误

HTML


按类别筛选

艺术/文化 长者 青年 动物 社区 危机支持 环境 基于信仰 残疾人
我将submit的值更改为1

<input type="submit" name="submit" id="filter" value="1"/>   

if (intval($_POST['submit') == 1){
  $count = 0;
  $sql = "SELECT * FROM opportunity WHERE `Category` IN ( ";
  $chk = $_POST['chk'];
  foreach($chk as $value){
    $sql .= "'$value',"
    $count++;
  }
  if ($count > 0){
    $sql = substr($sql,0,-1) . ');';  // remove trailing comma and close

     // your sql and output go here

  }
}
HTML

<form action="filter.php" method="post">
<p class="searching">Filter by category</p>
<section class="box"><input id="chk1" type="checkbox" name="chk[]" class="check" value="Arts/Culture"/><img class="lilIcon" src="img/anc.png"><h5>Arts/Culture</h5></section>
<section class="box"><input id="chk2" type="checkbox" name="chk[]" class="check" value="Seniors"/><img class="lilIcon" src="img/senior.png"><h5>Seniors</h5></section>
<section class="box"><input id="chk3" type="checkbox" name="chk[]" class="check" value="Youth"/><img class="lilIcon" src="img/youth.png"><h5>Youth</h5></section>
<section class="box"><input id="chk4" type="checkbox" name="chk[]" class="check" value="Animals"/><img class="lilIcon" src="img/pet.png"><h5>Animals</h5></section>
<section class="box"><input id="chk5" type="checkbox" name="chk[]" class="check" value="Community"/><img class="lilIcon" src="img/comm.png"><h5>Community</h5></section> 
<section class="box"><input id="chk6" type="checkbox" name="chk[]" class="check" value="Crisis Support"/><img class="lilIcon" src="img/cs.png"><h5>Crisis Support</h5></section>
<section class="box"><input id="chk7" type="checkbox" name="chk[]" class="check" value="Environment"/><img class="lilIcon" src="img/leaf.png"><h5>Environment</h5></section>
<section class="box"><input id="chk8" type="checkbox" name="chk[]" class="check" value="Faith Based"/><img class="lilIcon" src="img/pray.png"><h5>Faith Based</h5></section> 
<section class="box"><input id="chk9" type="checkbox" name="chk[]" class="check" value="People with Disabilities"/><img class="lilIcon" src="img/chair.png"><h5>People with Disabilities</h5></section>
<input type="submit" name="submit" id="filter" value="1"/>    
</form> 

按类别筛选

艺术/文化 长者 青年 动物 社区 危机支持 环境 基于信仰 残疾人
您需要以不同的方式命名复选框(例如,每个复选框都有一个唯一的名称),或者使用
[]
命名技巧-现在,您只会得到最后选中的复选框,因为名称都是相同的。那么,您的查询构建是完全错误的:由于您在字符串上下文中使用数组,因此易受攻击并执行
操作,其中`Category`=Array
不正确。它应该是
$\u POST['chk']没有
[]
@Sean谢谢,我在看别人的代码时被破坏了。
<form action="filter.php" method="post">
<p class="searching">Filter by category</p>
<section class="box"><input id="chk1" type="checkbox" name="chk[]" class="check" value="Arts/Culture"/><img class="lilIcon" src="img/anc.png"><h5>Arts/Culture</h5></section>
<section class="box"><input id="chk2" type="checkbox" name="chk[]" class="check" value="Seniors"/><img class="lilIcon" src="img/senior.png"><h5>Seniors</h5></section>
<section class="box"><input id="chk3" type="checkbox" name="chk[]" class="check" value="Youth"/><img class="lilIcon" src="img/youth.png"><h5>Youth</h5></section>
<section class="box"><input id="chk4" type="checkbox" name="chk[]" class="check" value="Animals"/><img class="lilIcon" src="img/pet.png"><h5>Animals</h5></section>
<section class="box"><input id="chk5" type="checkbox" name="chk[]" class="check" value="Community"/><img class="lilIcon" src="img/comm.png"><h5>Community</h5></section> 
<section class="box"><input id="chk6" type="checkbox" name="chk[]" class="check" value="Crisis Support"/><img class="lilIcon" src="img/cs.png"><h5>Crisis Support</h5></section>
<section class="box"><input id="chk7" type="checkbox" name="chk[]" class="check" value="Environment"/><img class="lilIcon" src="img/leaf.png"><h5>Environment</h5></section>
<section class="box"><input id="chk8" type="checkbox" name="chk[]" class="check" value="Faith Based"/><img class="lilIcon" src="img/pray.png"><h5>Faith Based</h5></section> 
<section class="box"><input id="chk9" type="checkbox" name="chk[]" class="check" value="People with Disabilities"/><img class="lilIcon" src="img/chair.png"><h5>People with Disabilities</h5></section>
<input type="submit" name="submit" id="filter" value="1"/>    
</form>