我正在使用复选框来更改 SQL 查询。
的HTML:
<input type="checkbox" name="chapter" value="7" /><label>ch. 7</label><br />
<input type="checkbox" name="chapter" value="13" /><label>ch. 13</label>
PHP:
//adjust query for chapter
$chap = $_POST['chapter'];
$chapter = "";
if(!empty($chap)){
$N = count($chap);
if($N == 1){
$chapter .= " AND chapter = '".$chap[0]."'";
}else{
$chapter .= " AND (chapter = '".$chap[0]."' OR chapter = '".$chap[1]."')";
}
}
$zquery = "SELECT * FROM records WHERE ".$zipcodes.$chapter;
当复选框未选中时,它可以正常工作。当第 7 章框被选中时,它工作正常。问题在于那个 13 盒。当我检查时,$chap[]
只返回一个值"1"
而不是"13"
. 例如,当var_dump
$zquery
我得到string(3384) "SELECT * FROM records WHERE (party_zip='34683' OR party_zip='34682' ) AND chapter = '1'"
.
此外,$N
总是返回1
,即使我选中了两个框。是$_POST['chapter']
不是数组?为什么它只返回字符串中的第一个字符?
合十礼