Je suis assez nouveau à la programmation et travaille actuellement sur une base de données de jeux vidéo. Je suis bloqué à un moment où je veux filtrer mes entrées avec la méthode "GET". Tout fonctionne bien jusqu'à ce que je veux rechercher plusieurs paramètres pour le problème principal est de passer par mon commutateur/déclaration de cas fois fois. Alors, voici le code:Comment puis-je obtenir plus d'un paramètre GET en utilisant switch/case en php?
$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 . "%'";
}
La variable $ est la instructionDeSélection retournant déclaration de sélection pour mes entrées de la base de données, mais je pensais que ce ne serait pas utile de le publier dans son intégralité.
Merci d'avance.
EDIT:
Je suis surpris que je suis arrivé tant de réponses après seulement quelques minutes, je vous remercie beaucoup! Mais j'ai essayé chacune de vos réponses et aucune ne fonctionne vraiment pour moi. Par exemple, si je recherche maintenant deux paramètres, il ne reconnaît que le dernier. Dans cet exemple http://localhost/index.php?developer=ubisoft&medium=disc
il me montre que le moyen, mais pas le développeur ...
usage multiple 'déclarations if' au lieu de' switch' – ArtOsi
Je suppose que si vous n'utilisez pas « casser », il vérifiera chaque paramètre. Mais alors vous devrez changer la valeur et la valeur des colonnes pour inclure tous les paramètres. –
@MrKiwey mis à jour ma réponse s'il vous plaît vérifier –