gpt4 book ai didi

php - 使用 where 子句和 if 语句进行 MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 08:06:08 25 4
gpt4 key购买 nike

我再次陷入 MySQL 查询,我需要一些帮助。

我正在努力寻找最好的方法来做到这一点。我想要做的是检查 $var = 'x' 并基于此运行不同的查询。

部分代码:

if ($var1 == '0' AND $var2 != '0' AND $var3 != '0' AND $var4 != '0') {
echo $query = "SELECT * FROM table WHERE var1 = ''";
}elseif ($var1 == '1' AND $var2 != '0' AND $var3 != '0' AND $var4 != '0') {
echo $query = "SELECT * FROM table WHERE var1 = '1'";
}elseif ($var1 != '0' AND $var2 == '0' AND $var3 != '0' AND $var4 != '0') {
echo $query = "SELECT * FROM table WHERE var2 = ''";
}elseif ($var1 == '0' AND $var2 == '0' AND $var3 != '0' AND $var4 != '0') {
echo $query = "SELECT * FROM table WHERE var1 = '' AND var2 = ''";
} etc..

连接数很多。有一个更好的方法吗?几乎每个变量(总共 7 个)都有 3 个不同的选择。我不能将 var = $var 放在 WHERE 子句下,因为有时当 $var = '0' 时,我指的是所有结果,所以我什至不把它放在那里..

顺便说一句,这是一个过滤脚本/代码..

这对你来说有意义吗?谢谢!

最佳答案

我认为这可以通过单个查询和不同的 WHERE 条件来完成。您需要首先定义何时将 var1 = '' 放入 WHERE 子句中。您应该一一找出查询中需要 varX = '' 的情况。

$conds = array();
if ($var1 == '0' || $var2 == '0') {
$conds[] = "var1 = ''"; // this should be the only point where var1 is included in your query, so you need to have every possible condition in this if part
}
if ($var3 == '0' && $var4 != '0') {
$conds[] = "var3 = ''";
}
// ..etc..
$query = "SELECT * FROM TABLE WHERE " . implode(' AND ', $conds);

关于php - 使用 where 子句和 if 语句进行 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com