Formulaire de recherche avec un ou plusieurs (plusieurs) paramètres
Problème :
Dans un Lors de l'implémentation précédente d'un formulaire de recherche, un seul paramètre pouvait être utilisé à la fois. Le but est de modifier ce formulaire pour permettre aux utilisateurs de saisir un ou plusieurs paramètres et de recevoir les résultats de recherche correspondants.
Solution :
Pour y parvenir, nous allons modifiez le code PHP pour construire dynamiquement la clause WHERE en fonction des paramètres d'entrée.
Modifié search.php :
<?php $wheres = []; $params = []; if (!empty($_POST['id']) && isset($_POST['id'])) { $wheres[] = 'a.uid = :uid'; $params[':uid'] = $_POST['id']; } if (!empty($_POST['major']) && isset($_POST['major'])) { $wheres[] = 'a.major = :major'; $params[':major'] = $_POST['major']; } if (!empty($_POST['college']) && isset($_POST['college'])) { $wheres[] = 'a.college = :college'; $params[':college'] = $_POST['college']; } if (!empty($_POST['name']) && isset($_POST['name'])) { $wheres[] = 'b.name LIKE :name'; $params[':name'] = '%' . $_POST['name'] . '%'; } $sql = "SELECT * FROM user_details AS a JOIN user AS b ON a.uid = b.id"; if (!empty($wheres)) { $sql .= " WHERE " . implode(' AND ', $wheres); } $stmt = $db->prepare($sql); $stmt->execute($params); // Display the results as in the original code
Explication :
Par en utilisant cette approche, les utilisateurs peuvent désormais saisir plusieurs paramètres et obtenir des résultats basés sur tous les critères spécifiés.
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!