gpt4 book ai didi

php - 如何执行具有多个 WHERE 子句的 MySQL 查询?

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

如何进行 mysql 查询,让用户可以从多个选项中进行选择。 Fox 示例 我有一个用户可以用来搜索房屋的表单。现在我有一个选择框,您可以在其中选择您想要房子、公寓还是其他什么。然后我有第二个框,您可以在其中选择例如您想要房屋或公寓所在的城市。也许还有另一个最高价格的框。

现在你将如何进行 mysql 查询?我的问题是,我会这样做:if($_POST["house_type"] != 0) {$select = mysql_query("SELECT * FROM 无论什么 WHERE type = '".$_POST["house_type"]."'");}但现在我只有有人选择了房屋类型的情况,而没有其他选择。那么我是否必须对所选元素的每种可能的组合都执行“if”?

强调我的问题:

if(!isset($_POST["house_type"])) {

if($_POST["something"] == 0) {
$search_select = @mysql_query("SELECT * FROM housedata WHERE something = $_POST["whatever"]);

}
elseif($_POST["something"] != 0) {
$search_select = @mysql_query("SELECT * FROM housedata something = $_POST["whatever"] AND somethingelse = 'whatever');
}
}



elseif(!isset($_POST["house_type"])) {


if($_POST["something"] == 0) {
$search_select = @mysql_query("SELECT * FROM housedata WHERE something = $_POST["whatever"]);

}
elseif($_POST["something"] != 0) {
$search_select = @mysql_query("SELECT * FROM housedata something = $_POST["whatever"] AND somethingelse = 'whatever');
}
}

现在想象一下我有大约 10 或 20 个不同的选择框、输入字段和复选框,我必须根据这些框、字段和复选框的填充内容进行 mysql 查询。这将是一段极其复杂、缓慢且可怕的代码。那么是否有可能进行如下这样的 mysql 查询:

SELECT * FROM whatever WHERE house_data = '".$whatever."' AND (if(isset($_POST["something"])) { whatever = '".$whatever2."' } AND ...;

你明白我的意思吗?解释起来有点复杂,但实际上这是一个非常重要的问题,而且可能很容易回答。

感谢您的帮助!phpheini

最佳答案

在运行 SQL 之前生成 WHERE 子句。

一个简短的例子:

$whereClause = "";

if ($_POST['opt1']) {
$opt1 = mysql_real_escape_string($_POST['opt1']);
$whereClause .= "AND opt1='$opt1'";
}

if ($_POST['opt2']) {
$opt2 = mysql_real_escape_string($_POST['opt2']);
$whereClause .= "AND opt2='$opt2'";
}

mysql_query("SELECT * FROM table WHERE 1 ".$whereClause);

关于php - 如何执行具有多个 WHERE 子句的 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093123/

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