搜索多个条件的记录

我有一个包含多个输入的搜索表单。我正在尝试根据表单字段中提供的值搜索记录(某些字段可能为空),请帮我实现这一点。此表单将我带到其他表单并显示记录。每当任何字段的值为空白或未选择时,都不会提供任何输出

搜索多个条件的记录

$facility=$_POST[facility];
$user=$_POST[user];
$type=$_POST[type];
$sql = "SELECT * FROM tblfacility join tbluser on tbluser.id=tblfacility.user where facility = '".$facility."' AND type= '".$type."' " ;
$query = $dbh -> prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);

我只采用了这种形式的三个变量,现在都是全域

wwyfendou 回答:搜索多个条件的记录

您可以通过动态方式实现此目标,具体取决于输入。

在这里,首先将所有输入数据存储到名为$ input_data的数组中,可以在循环中应用rest条件。因此将检查所有输入。

$input_data = $_POST;

$where = " where 1=1";

foreach ($input_data as $key => $value) {
    if($value && !empty($value)) {
        $where .= "AND $key = '$value'";
    }
}

$sql = "SELECT * FROM tblfacility join tbluser on tbluser.id=tblfacility.user $where" ;
$query = $dbh -> prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);

本文链接:https://www.f2er.com/3167006.html

大家都在问