gpt4 book ai didi

从数组和变量过滤时PHP mysql查询问题

转载 作者:行者123 更新时间:2023-11-29 18:07:30 24 4
gpt4 key购买 nike

在我的网页(html、php)上,我试图让用户可以选择多个复选框,每个复选框有效地过滤用户看到的结果。根据不同列中的值从数据库 (MySQL) 中提取信息。如下所示,一列是Joint_1,另一列是Position。

适用于过滤的有效代码(非常静态,显然不实用)是这样的:

$sql = "SELECT * FROM `Table_Name` WHERE (Joint_1=\'region1\'  OR  
Joint_1=\'region2\' OR
Joint_1=\'region3\' OR
Joint_1=\'region4\') AND
(Position=\'position1\' OR
Position=\'position2\' OR
Position=\'position3\')";
$result = $conn->query($sql);

if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row["Common_Name1"] . "<br>";
}
} else {
echo "0 results";
}

下面的代码是对上面代码的尝试,但是使用了数组,这不起作用。

$regions = 
array('region1', 'region2', 'region3', 'region4');
$position = array('position1', 'position2', 'position3');

$sql = "SELECT * FROM `Table_Name` WHERE (Joint_1=\'. $regions[0] .\' OR
Joint_1=\'. $regions[1] .\' OR
Joint_1=\'. $regions[2] .\' OR
Joint_1=\'. $regions[3] .\') AND
(Position=\'. $position[0] .\' OR
Position=\'. $position[0] .\' OR
Position=\'. $position[0] .\')";

以上代码提供“0 个结果”的结果。

我已经尝试多次执行此操作,下面还包含其他非功能代码(下面尝试仅基于 1 列进行过滤,因为我显然没有掌握基于 2 列进行过滤的代码)。

$sqlregion = array();
foreach ($_POST['region'] as $reg) {
$sqlreg[] = "'" . mysql_real_escape_string($reg) . "'";
}
$sql = "SELECT * FROM 'Exercises' WHERE Joint_1 IN (" . implode(",",
$sqlreg) . ");";

$result=$conn->query($sql);

if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row["Common_Name1"] . "<br>";
}
}

感谢任何帮助!谢谢。

最佳答案

您可以从数组构造此查询,您可以使用mysql中的IN子句指定多个OR

$regions = array('region1', 'region2', 'region3', 'region4');
$position = array('position1', 'position2', 'position3');
$regions = implode(",", $regions); // Converts array to string with comma as a separator
$position = implode(",", $position);
$sql = "SELECT * FROM `Table_Name` WHERE Joint_1 IN ($regions) AND Position IN ($position)";
echo $sql;

这会给你一个像这样的查询

SELECT * FROM Table_Name WHERE Joint_1 IN (region1,region2,region3,region4) AND Position IN (position1,position2,position3)

添加您自己的 LIMIT GROUP BYORDER BY 参数以满足您的需求

关于从数组和变量过滤时PHP mysql查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47702164/

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