gpt4 book ai didi

php - 如何根据表单选择构建正确的查询?

转载 作者:行者123 更新时间:2023-11-29 13:36:42 26 4
gpt4 key购买 nike

我试图找出如何根据我拥有的表单构建正确的查询,我知道如何在必须设置所有表单值时构建查询,但我的表单也有可选值,我可以不太清楚如何做到这一点。

假设我的表单有 4 个选择:

<select name="1" id="1">
<option>Select Value</option>
<option value="rent">rent</option>
<option value="buy">buy</option>
</select>

<select name="2" id="2">
<option>Select Value</option>
<option value="house">house</option>
<option value="flat">flat</option>
</select>

<select name="3" id="3">
<option>Swimming pool</option>
<option value="any">any</option>
<option value="yes">yes</option>
<option value="no">no</option>
</select>

<select name="4" id="4">
<option>Furniture</option>
<option value="any">any</option>
<option value="yes">yes</option>
<option value="no">no</option>
</select>

选择 1 和 2 为必填项,3 和 4 为可选,默认值为“任意”。

我提交的示例表单是:1 = 租金 | 2 = 房子 | 3 = 任何 | 4 = 任意

正确的 SELECT 查询是什么样的?

到目前为止我尝试过:

将 $_POST 值放入变量中,然后使用 IF 检查该值是否为“any”,我这样做了:

if($swimming_pool == 'any') { $swimming_pool = "? OR 1=1"; }

所以最终的查询看起来像

从列表中选择 ID WHERE Swimming_pool='$swimming_pool'

哪个不起作用,不确定是否有效? OR 1=1 应该选择任何内容?

我在另一个问题中提到了这一点。

最佳答案

如果他们输入“any”,那么您希望将其完全排除在查询之外。基本上,在将查询字符串传递到数据库之前动态构建查询字符串。像这样的东西(假设所有数据已经​​被清理以用于数据库查询):

$where = '1 = 1'

[...]

if ($swimmingpool != 'any')
$where .= " and swimming_pool = '$swimmingpool'";

if ($furniture != 'any')
$where .= " and furniture = '$furniture'";

$querystring = "SELECT * FROM some_table WHERE $where ORDER BY whatever";
// Then pass $querystring when querying the database

如果您使用 PDO,那么您应该能够将 where 子句作为动态数组传递,但这只是一个非常简单的示例,可帮助您顺利进行。

关于php - 如何根据表单选择构建正确的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18649232/

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