我对下面列出的代码有疑问,我根据用户可能在表单上选择的搜索条件在数据库上运行查询。
目前,仅根据作者姓名查询数据库工作正常。但是如果我取消注释其余的if-else语句,那么查询都不起作用。我刚拿回一张空白表,没有返回任何结果。
我已经单独尝试了每个if / else语句,并且其他人已经注释掉了,并且它们都可以自行运行,但是当它们全部取消注释时都不行。
有人能指出我正确的方向吗?
$query = "SELECT * FROM books WHERE book_no IS NOT NULL";
if ($_POST['author'])
$query .= " AND '$author' = author";
/*
else if ($_POST['author'] AND $_POST['year'])
$query .= " AND '$author' = author AND '$year' = year";
*/
/*
else if ($_POST['cover_art']) {
$query .= " AND '$cover_art' = cover_art";
}
*/
/*
else if ($_POST['interior_art']) {
$query .= " AND '$cover_art' = cover_art";
}
else {
// do something else
}
*/
答案 0 :(得分:0)
检查此解决方案:
$author='Bred';
$year='2012';
$cover_art='';
$queryA=array();
if ($author<>'') $queryA []= "'$author' = author";
if ($year<>'') $queryA []= "'$year' = year";
if ($cover_art<>'') $queryA []= "'$cover_art' = cover_art";
$query = "SELECT * FROM books WHERE book_no IS NOT NULL";
if(count($queryA)>0) $query.=' AND '.implode(' AND ',$queryA);
echo $query;