用户填写查询的唯一字段

时间:2015-12-22 16:59:42

标签: php sql

我想根据用户输入从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'
");

2 个答案:

答案 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);