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

Wie erstelle ich ein dynamisches Suchformular mit mehreren Parametern in PHP?

Susan Sarandon
Freigeben: 2024-12-26 19:44:10
Original
681 Leute haben es durchsucht

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

Suchformular mit einem oder mehreren (mehreren) Parametern

Beim Erstellen eines Suchformulars, das Benutzern die Eingabe mehrerer Parameter ermöglicht, ist es wichtig zu berücksichtigen, wie die Suchergebnisse aussehen gefiltert werden.

Im bereitgestellten Beispiel verfügt das Suchformular über separate Eingabefelder für ID, Name, Hauptfach und Hochschule. Die Datei results.php verwendet dann individuelle if/elseif-Anweisungen, um jeden dieser Parameter separat zu verarbeiten.

Damit Benutzer jedoch einen oder mehrere Parameter eingeben können, ist ein dynamischerer Ansatz erforderlich. Dies kann erreicht werden, indem die WHERE-Klausel für die SQL-Abfrage dynamisch basierend auf den eingegebenen Parametern erstellt wird.

Hier ist eine überarbeitete Version der Datei results.php, die diesen Ansatz demonstriert:

<?php

$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'].'%';
}

$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);

while ($student = $stmt->fetch()) {
    echo '
        <tr>
            <td>'.$student['uid'].'</td>
            <td>'.$student['name'].'</td>
            <td>'.$student['major'].'</td>
            <td>'.$student['college'].'</td>
            <td><a href="?m=profile&amp;id='.$student['id'].'">
Nach dem Login kopieren

Dieser Code erstellt dynamisch die WHERE-Klausel basierend auf den eingegebenen Parametern. Wenn der Benutzer nur einen Namen eingibt, wird die Abfrage nur nach Namen gefiltert. Wenn der Benutzer sowohl einen Namen als auch ein Hauptfach eingibt, wird die Abfrage nach beiden Parametern gefiltert.

Dieser Ansatz ermöglicht ein flexibleres und benutzerfreundlicheres Sucherlebnis.

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein dynamisches Suchformular mit mehreren Parametern 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