$whereClauses = array();
if (! empty($_POST['house'])) $whereClauses[] ="type='".mysqli_real_escape_string($conn,$_POST['house'])."'";
if (! empty($_POST['price'])) $whereClauses[] ="rate ".mysqli_real_escape_string($conn,$_POST['price'])."";
if (! empty($_POST['any'])) $whereClauses[] ="title or area or postcode LIKE '%".mysqli_real_escape_string($conn,$_POST['any'])."%'";
$where = '';
if (count($whereClauses) > 0) { $where = ' WHERE '.implode(' AND ',$whereClauses); }
我似乎无法使用类似的声明来工作,例如它不会显示任何匹配标题列的结果,如果有一个区域列,我希望显示所有匹配。此外,每当我使用第3个if语句时,它会忽略前两个,例如我只想要价格超过1000英镑的房子,当我使用它时,它会显示下面的房子。
sql其中:WHERE type ='House'AND rate> 150 AND AND OR区域或邮政编码LIKE'%s%'