Formulaire de recherche avec plusieurs paramètres
Dans un formulaire de recherche, permettre aux utilisateurs de saisir plusieurs paramètres peut améliorer la fonctionnalité de recherche. Cependant, cela nécessite une modification du processus de recherche.
Clause WHERE dynamique
La clé pour activer plusieurs paramètres est de créer la clause WHERE de manière dynamique en fonction de la saisie de l'utilisateur. . Voici comment l'aborder en PHP en utilisant PDO :
$wheres = array(); $params = array(); if (!empty($_GET['id'])) { $wheres[] = 'a.uid = :uid'; $params[':uid'] = $_GET['id']; } if (!empty($_GET['major'])) { $wheres[] = 'a.major = :major'; $params[':major'] = $_GET['major']; } if (!empty($_GET['name'])) { $wheres[] = 'b.name LIKE :name'; $params[':name'] = '%'.$_GET['name'].'%'; }
Ici, nous créons un tableau $wheres pour contenir les instructions conditionnelles et un tableau $params pour stocker les valeurs des paramètres correspondants. Pour chaque paramètre non vide, nous ajoutons une condition à $wheres et stockons le paramètre dans $params.
Génération de la requête SQL
Nous concaténons ensuite les conditions de $wheres pour former la clause WHERE :
if (!empty($wheres)) { $sql .= " WHERE " . implode(' AND ', $wheres); }
La fonction implode() joint les conditions avec le mot-clé 'AND'. Nous l'ajoutons à la requête SQL de base.
Exécution de la requête et affichage des résultats
Ensuite, nous préparons et exécutons la requête :
$stmt = $db->prepare($sql); $stmt->execute($params);
Enfin, nous parcourons l'ensemble de résultats et affichons les informations souhaitées sur l'étudiant, similaires à l'original code :
while ($student = $stmt->fetch()) { ... }
Cette approche dynamique permet aux utilisateurs de saisir plusieurs paramètres, en les combinant pour personnaliser leurs résultats de recherche.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!