Suchformular mit einem oder mehreren (mehreren) Parametern
Problem:
In a Bei der vorherigen Implementierung eines Suchformulars konnte jeweils nur ein Parameter verwendet werden. Ziel ist es, dieses Formular so zu ändern, dass Benutzer einen oder mehrere Parameter eingeben und die entsprechenden Suchergebnisse erhalten können.
Lösung:
Um dies zu erreichen, werden wir Ändern Sie den PHP-Code, um die WHERE-Klausel basierend auf den Eingabeparametern dynamisch zu erstellen.
Geändert 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
Erklärung:
Von Mithilfe dieses Ansatzes können Benutzer nun mehrere Parameter eingeben und Ergebnisse basierend auf allen angegebenen Kriterien erhalten.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Suchformular so ändern, dass es mehrere Suchparameter akzeptiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!