Heim > Backend-Entwicklung > PHP-Tutorial > Wie erstelle ich ein Suchformular mit mehreren Suchparametern in PHP?

Wie erstelle ich ein Suchformular mit mehreren Suchparametern in PHP?

Linda Hamilton
Freigeben: 2024-12-17 02:08:23
Original
845 Leute haben es durchsucht

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

Suchformular mit einem oder mehreren (mehreren) Parametern

Problem:

Sie haben ein Suchformular, das Benutzern erlaubt um mehrere Suchparameter einzugeben, z. B. Studentenausweis, Name, Hauptfach oder Hochschule. Sie möchten in der Lage sein, mithilfe einer beliebigen Kombination dieser Parameter nach Schülern zu suchen.

Antwort:

Um die Suche mit mehreren Parametern zu ermöglichen, erstellen Sie die SQL-WHERE-Klausel dynamisch auf den von der eingegebenen Parametern Benutzer.

Lösung:

  1. Verwenden Sie PHPs PDO (bevorzugte Methode):

    • Erstellen Sie ein Array zur Aufnahme der WHERE-Bedingungen.
    • Durchlaufen Sie jeden Suchparameter und fügen Sie ihn hinzu eine entsprechende WHERE-Bedingung für das Array.
    • Implodieren Sie das Array, um eine einzelne WHERE-Klausel zu erstellen.
    • Bereiten Sie eine PDO-Anweisung mit der WHERE-Klausel vor, führen Sie sie aus und binden Sie die Parameter.
    $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);
    Nach dem Login kopieren
  2. Vorhandenes MySQLi ändern Ansatz:

    • Überprüfen Sie jeden nicht leeren Parameter und hängen Sie eine entsprechende WHERE-Bedingung an die SQL-Abfrage an.
    • Verwenden Sie AND, um die Bedingungen zu kombinieren.
    $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);
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein Suchformular mit mehreren Suchparametern in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage