![](/img/trans.png)
[英]PHP/MySQL: Declare variables using array elements from MySQL Query
[英]PHP mysql query issue when filtering from array and variables
在我的網頁(html,php)上,我試圖讓用戶選擇多個復選框,每個復選框有效地過濾了用戶看到的結果。 根據不同列中的值從數據庫(MySQL)中提取信息。 如下所示,一列是Joint_1,另一列是Position。
WORKS用於過濾的有效代碼(非常靜態,顯然不實用)是這樣的:
$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 BY
或ORDER BY
參數以滿足您的需求
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.