Php 使用多个复选框返回MySQL结果
我试图创建一个搜索函数,允许用户选择多个类别,选择submit,然后php将返回与所选类别匹配的mysql结果 我希望在没有AJAX或jQuery的情况下实现这一点,但如果需要,我将使用它们。我对PHP的世界比较新,所以我认为我走上了正确的道路,但是我希望得到一些帮助来纠正这个错误 HTMLPhp 使用多个复选框返回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的值更改为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>