Maison >développement back-end >tutoriel php >Comment puis-je modifier un formulaire de recherche pour accepter plusieurs paramètres de recherche ?

Comment puis-je modifier un formulaire de recherche pour accepter plusieurs paramètres de recherche ?

DDD
DDDoriginal
2025-01-03 18:24:40966parcourir

How Can I Modify a Search Form to Accept Multiple Search Parameters?

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 :

  1. Initialisez les tableaux vides pour les conditions et paramètres de la clause WHERE.
  2. Vérifiez chaque paramètre d'entrée et ajoutez la condition et le paramètre correspondants aux tableaux.
  3. Créez la requête SQL en incluant dynamiquement les conditions combinées de la clause WHERE.
  4. Préparez et exécutez l'instruction SQL à l'aide de PDO avec des paramètres nommés.
  5. Affichez les résultats de la recherche comme dans l'implémentation d'origine.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn