Php 如何基于多个复选框值进行查询

Php 如何基于多个复选框值进行查询,php,mysql,checkbox,Php,Mysql,Checkbox,我想根据复选框的输入进行查询 这是我做的: <form action="#" method="GET" id="filter"> <input type="checkbox" name="toe[]" value="ja">ja<br /> <input type="checkbox" name="toe[]" value="misschien">misschien<br/> <input type="chec

我想根据复选框的输入进行查询

这是我做的:

       <form action="#" method="GET" id="filter"> 
<input type="checkbox" name="toe[]" value="ja">ja<br /> 
<input type="checkbox" name="toe[]" value="misschien">misschien<br/> 
<input type="checkbox" name="toe[]" value="nee">nee<br/>
 <input type="submit" name="kies" value="Kies" /> 
</form>


 if(isset($_GET['toe']) && count($_GET['toe'] > 0)) { 
$toeid = implode(',', $_GET['toe']);
$toeid = mysql_real_escape_string($toeid); 
}

$sql = "SELECT  * 
FROM `table` 
WHERE TOEGEZEGD = '$toeid'
ORDER BY $field $sort";

ja
钱小姐
nee
if(isset($_GET['toe'])和&count($_GET['toe']>0)){ $toeid=内爆(',',$_GET['toe']); $toeid=mysql\u real\u escape\u字符串($toeid); } $sql=“选择* 从'table'开始 其中TOEGEZEGD='$toeid' 按$field$sort排序”;
这是可行的,但只有选中1个复选框,否则我会得到一个ja,nee的输出,而这不起作用


我还希望(如果可能的话)返回时,在查询中勾选的复选框将保持勾选状态。但是第一个是重要的,其余的都会来。

您需要的是(…)子句中的
WHERE-toegezgd。这需要单独转义所有传入参数并用逗号连接它们。

警告:
mysql\u query
是一个过时的接口,不应在新的应用程序中使用,因为它将在未来的PHP版本中被删除。一个现代的替代品。如果你是PHP新手,像这样的指南可以帮助你解释最佳实践。谢谢你的警告,但现在这不是meCan的选择,我可以这样做,你的意思是?WHERE-TOEGEZEGD IN('$toeid')?正确转义后,它看起来像
IN('ja','nee')
。好了,我这样做了查询:$sql=“SELECT*FROM
sponsoren
WHERE-TOEGEZEGD IN('$catid'))这不会给出错误,但也不是正确的结果,当echo$catid时,它会说ja,nee,而不是“ja”,“nee”。如何更改它?按$field$sort排序;你需要做的是转换参数:
$cat\u ids=introde(“,”,array\u map('mysql\u real\u escape\u string',$\u GET['toe']))
值得注意的是,在一个拥有完整数据库层的现代系统中,这完全不是问题。我确实理解我的方式(mysql,php)是旧的和过时的,但现在我只需要让我的工作,使我们(非常小的6人组织)可以使用它,直到夏天。我无法阻止它,并学习自己的新方法,让我在几周内工作。当它工作时,我将有时间使用更现代的方式建立一个新的“版本”。谢谢你的帮助