php mysql 搜索选项组合

php mysql search options combination

我有 4 个复选框用于筛选 mysql 结果。复选框也可以全部或单个激活。我不知道如何做出 sql 声明。我真的必须手动使用所有组合的可能性还是有更简单的解决方案?也许用 "switch"?

没有,我的第一个陈述是:

if ($vart1 == "1" AND !isset($vart2) AND !isset($vart2) AND !isset($vart2) AND !isset($vart4)) {       
  $tname_sql .= " a.tdesc = 'option1' AND";             
};

有多少变体?

感谢您的帮助。

此致, 奥拉夫

您可以制作一个简单的 PHP 函数,其中 return 是 WHEREAND 取决于被调用的次数:

$wa = 0;
function whereAnd() {
    global $wa;
    if ($wa == 0) {
        $wa = 1;
        return ' WHERE ';
    } else {
        return ' AND ';
    }
}

$query = "SELECT * FROM table1 t ";
if (isset($var1)) {
    $query .= whereAnd() . "t.field1 = " . $var1;
}
if (isset($var2)) {
    $query .= whereAnd() . "t.field2 = " . $var2;
}
if (isset($var3)) {
    $query .= whereAnd() . "t.field3 = " . $var3;
}
if (isset($var4)) {
    $query .= whereAnd() . "t.field4 = " . $var4;
}

第一个调用将 returns WHERE,所有其他调用将 return AND 无论您有什么样的组合。您无需关心通过了多少个复选框。