我很新的編程,目前正在研究視頻遊戲數據庫thingy。我被困在一個我想用「GET」方法篩選條目的地方。這一切工作正常,直到我想搜索多個參數爲主要問題是要通過我的開關/案例陳述多個倍。因此,這裏的代碼:如何通過在php中使用switch/case來獲取多個GET參數?
$columnName = NULL;
$searchValue = NULL;
switch ($_GET) {
case isset($_GET['name']):
$columnName = "games.name";
$searchValue = $_GET['name'];
break;
case isset($_GET['developer']):
$columnName = "developer.name";
$searchValue = $_GET['developer'];
break;
case isset($_GET['device']):
$columnName = "devices.name";
$searchValue = $_GET['device'];
break;
case isset($_GET['company']):
$columnName = "company.name";
$searchValue = $_GET['company'];
break;
case isset($_GET['medium']):
$columnName = "medium.name";
$searchValue = $_GET['medium'];
break;
default:
break;
}
if ($columnName !== null && $searchValue !== null) {
$selectStatement .= " WHERE " . $columnName . " LIKE '%" . $searchValue . "%'";
}
變量$ selectStatement是我的數據庫條目的選擇語句,但我認爲這不會有助於它張貼在它的全部。
在此先感謝。
編輯:
我很驚訝,我只是一個幾分鐘後,有這麼多的答案,太感謝你了! 但我試過每一個你的答案,沒有一個真正爲我工作。例如,如果我現在搜索兩個參數,它只能識別最後一個參數。 在這個例子中 http://localhost/index.php?developer=ubisoft&medium=disc
那隻能說明我的媒介,而不是開發者...
使用多個'if'語句而不是'switch' – ArtOsi
我想如果你不使用「break」,那麼它會檢查每個參數。但是,您將需要更改值和列值以包含所有參數。 –
@MrKiwey更新了我的答案,請檢查 –