這將讓你更接近的解決方案,但它不會取代查詢,這肯定會是錯誤的cat_id
- 雖然不可能做太多多無陣列結構:
function getAllRequests($filter)
{
$addfilter="";
if(!empty($filter))
{
foreach($filter as $val)
{
$addfilter. = ' AND cat_id=' . $val .'\'';
}
}
return $addFilter;
}
$myFilters=getAllRequests($filter);
$sql = 'SELECT * FROM Table1 WHERE status=true' . $myFilters;
在另一方面,如果你的陣列的方式strucutred這樣的:
array{ category => camera, model => samsung); // etc
,你可以使用以下命令:
function getAllRequests($filter)
{
$addfilter="";
if(!empty($filter))
{
foreach($filter as $key => $val)
{
$addfilter. = " AND `$key` = '$val'";
}
}
return $addFilter;
}
$myFilters=getAllRequests($filter);
$sql = 'SELECT * FROM Table1 WHERE status=true' . $myFilters;
編輯:您可以通過以下方式所有的過濾循環:
function getAllRequests()
{
$addfilter="";
if(!empty($_REQUEST))
{
foreach($_REQUEST as $key => $val)
{
$addfilter. = " AND `$key` = '$val'";
}
}
return $addFilter;
}
$myFilters=getAllRequests();
$sql = 'SELECT * FROM Table1 WHERE status=true' . $myFilters;
你並不需要通過$_REQUEST
(這將爲工作GET和POST),因爲它已經是一個超全局。
@ Fluffeh-像你的想法,你可以幫我從我的網址創建一個數組?因爲我所有的過濾器都在url示例中:get.php?type = car&year = 2012&color = black ...thx – Dan
@丹我彈出一個編輯,我認爲它應該爲你工作。 – Fluffeh