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 是 WHERE
或 AND
取决于被调用的次数:
$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
无论您有什么样的组合。您无需关心通过了多少个复选框。
我有 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 是 WHERE
或 AND
取决于被调用的次数:
$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
无论您有什么样的组合。您无需关心通过了多少个复选框。