Maison > développement back-end > tutoriel php > Comment créer un formulaire de recherche avec plusieurs paramètres de recherche en PHP ?

Comment créer un formulaire de recherche avec plusieurs paramètres de recherche en PHP ?

Linda Hamilton
Libérer: 2024-12-17 02:08:23
original
844 Les gens l'ont consulté

How to Build a Search Form with Multiple Search Parameters in PHP?

Formulaire de recherche avec un ou plusieurs (plusieurs) paramètres

Problème :

Vous disposez d'un formulaire de recherche qui permet aux utilisateurs pour saisir plusieurs paramètres de recherche, tels que la carte d'étudiant, le nom, la spécialité ou l'université. Vous souhaitez pouvoir rechercher des étudiants en utilisant n'importe quelle combinaison de ces paramètres.

Réponse :

Pour activer la recherche avec plusieurs paramètres, créez dynamiquement la clause SQL WHERE basée sur les paramètres saisis par le utilisateur.

Solution :

  1. Utiliser le PDO de PHP (méthode préférée) :

    • Créez un tableau pour contenir les conditions WHERE.
    • Parcourez chaque paramètre de recherche et ajoutez un condition WHERE correspondante au tableau.
    • Implode le tableau pour créer une seule clause WHERE.
    • Prépare et exécute une instruction PDO à l'aide de la clause WHERE et lie les paramètres.
    $wheres = [];
    $params = [];
    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'].'%';
    }
    // ...continue for additional parameters
    
    $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);
    Copier après la connexion
  2. Modifier MySQLi existant Approche :

    • Vérifiez chaque paramètre non vide et ajoutez une condition WHERE correspondante à la requête SQL.
    • Utilisez AND pour combiner les conditions.
    $sql = "SELECT * FROM user_details a, user b WHERE a.uid = b.id";
    if (!empty($_GET['id'])) {
        $sql .= " AND a.uid = '" . $_GET['id'] . "'";
    }
    if (!empty($_GET['major'])) {
        $sql .= " AND a.major = '" . $_GET['major'] . "'";
    }
    if (!empty($_GET['name'])) {
        $sql .= " AND b.name LIKE '%" . $_GET['name'] . "%'";
    }
    // ...continue for additional parameters
    
    $result = mysqli_query($db, $sql);
    Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal