gpt4 book ai didi

php - 如何构建适合所有用户的动态 mysql 查询

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:16 29 4
gpt4 key购买 nike

我的网站搜索功能需要您的帮助。我正在开发一个成员(member)区,用户可以在其中根据特定标准或标准组合搜索其他注册用户。

我现在的问题是如何构建动态 mysql 查询以满足每个搜索条件组合的需要,其中条件的数量是可变的。

通常,我可以使用预先确定的一组标准来编写

   WHERE param1 = '$param1'
AND param2 = '$param2'
AND param3 = '$param3'

我该如何解决这个问题?

最佳答案

如果问题是您不知道用户会选择哪个标准,但想返回“空白”标准的结果,您可以使用以下方法:

$criteria_1 = $_POST['criteria_1'];
$criteria_2 = $_POST['criteria_2'];
$criteria_3 = $_POST['criteria_3'];

if(!$criteria_1 && !$criteria_2 && !$criteria_1) {

echo "You must select at least one criteria!";

} else {

// Run query mentioned below and return results.

}

查询将如下所示:

SELECT * from mytable
WHERE
(criteria1 = '$criteria_1' OR '$criteria_1' = '') AND
(criteria2 = '$criteria_2' OR '$criteria_2' = '') AND
(criteria3 = '$criteria_3' OR '$criteria_3' = '')

这会将任何空白(未选择的)参数视为空白并忽略它们。请注意,如果没有给出条件,它将返回所有结果。

上面的另一种写法是:

SELECT * from mytable
WHERE
criteria1 IN ('$criteria_1', '') AND
criteria2 IN ('$criteria_2', '') AND
criteria3 IN ('$criteria_3', '')

同样,允许完全不输入以返回所有 criteria1 结果。

关于php - 如何构建适合所有用户的动态 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390873/

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