我想根据用户输入从sql过滤数据。事情是我有3个字段,例如(位置,状态,雇主)。但如果用户没有输入某个字段(例如现场雇主),该字段将不包含在查询中(where子句)。
继承我的查询
$result_set = mysqli_query($connection, "
SELECT fname, mname, lname, contactno ...
FROM tblapplicant, tblreq
WHERE tblapplicant.appid = tblreq.appid AND stat= '$a' AND emp= '$b' AND hired_pos= '$c'
");
答案 0 :(得分:0)
尝试使用OR
代替AND
SELECT fname,mname,lname,contactno ...
FROM tblapplicant
inner join tblreq
on tblapplicant.appid=tblreq.appid
where (stat= '$a' and $a is not null)
or (emp= '$b' and $b is not null)
or (hired_pos= '$c' and $c is not null)
答案 1 :(得分:0)
您可以有条件地附加其他条件。
$sql = 'SELECT fname, mname, lname, contactno ...
FROM tblapplicant, tblreq
WHERE tblapplicant.appid = tblreq.appid ';
if ($a) { $sql .= "AND stat='$a' "; }
if ($b) { $sql .= "AND emp='$b' "; }
if ($c) { $sql .= "AND hired_pos='$c' "; }
$result_set = mysqli_query($connection, $sql);