我試圖圍繞PHP中的一些可選搜索參數構建MySQL查詢。有3個搜索字段鏈接到我的數據庫中的三列。用戶應該能夠單獨搜索每個列,或者如果他們想縮小結果範圍,則最多可以搜索3個列。圍繞可選搜索參數構建SQL查詢
我的PHP代碼是建立的,如果其中一個搜索字段是空的,沒關係,它會繼續搜索另外兩個字段。然而,我很努力地想知道如何構建我的SQL查詢,因爲我的where
子句已經在$whereclauses
數組中指定。我在用戶進行的任何搜索中返回相同的列,以便使SQL查詢非常簡單並且意味着它只需要定義一次。
我的PHP代碼:在PHP
<?php
require '../db/connect.php';
$whereclauses = array();
$subsets = false;
// for every field
if(!empty($_POST['name']))
{
$subsets = true;
$whereclauses[] = " ARTIST = ". mysql_real_escape_string(trim($_POST['name']));
}
if($subsets)
{
$whereclauses = implode(", ". $whereclauses);
}
else
{
$whereclauses ="";
}
SQL查詢
if(!empty($whereclauses)) {
$sql = "SELECT
`ARTIST`, `TRACKTITLE`, `DATE`, `LOCATION`
FROM
`table 3`";
};
$result = mysql_query($sql);
$data = array();
while ($array = mysql_fetch_assoc($result)) {
$data[] = $array;
}
header('Content-type: application/json');
echo json_encode($data);
我如何可以添加$whereclauses
陣列到我$sql
查詢?
您可以添加更多的地方使用 「AND」 命令條款。 所以你必須選擇3箇中的至少1個,最多3個是否正確? – Newbi3