Mit der Entwicklung des Internets sind Suchmaschinen zu einem der wichtigsten Kanäle für die Informationsbeschaffung geworden. Viele Websites sind außerdem mit eigenen Suchfunktionen ausgestattet, um Benutzern das schnelle Auffinden der benötigten Inhalte zu erleichtern. PHP kann als häufig verwendete Programmiersprache auch Suchaufzeichnungsfunktionen implementieren, um Benutzern ein besseres Benutzererlebnis zu bieten. In diesem Artikel wird erläutert, wie PHP-Suchdatensätze implementiert werden.
1. Datenbankdesign
Das erste, was zu berücksichtigen ist, ist das Design der Datenbank. In diesem Artikel wird MySQL als Beispiel verwendet.
1.1 Tabellendesign
Sie müssen eine Tabelle erstellen, um die vom Benutzer gesuchten Datensätze zu speichern, einschließlich der folgenden Felder:
Die Struktur der Tabelle ist wie folgt:
CREATE TABLE search_history
(
id
int(11) NOT NULL AUTO_INCREMENT,
keyword
varchar(255) NOT NULL DEFAULT '',
search_time
datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_id
int(11) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1.2 Feldbeschreibung
In der obigen Tabelle müssen Sie auf die folgenden Punkte achten:
2. Suchverlauf aufzeichnen
Auf der Seite kann die Suchfunktion des Benutzers über ein Formular implementiert werden und basierend auf dem Suchinhalt in der oben genannten Tabelle „search_history“ gespeichert werden. Der spezifische Code lautet wie folgt:
2.1 Mit der Datenbank verbinden
Zuerst müssen Sie eine Verbindung mit der Datenbank herstellen, damit die Suchergebnisse in der Datenbank gespeichert werden können.
$conn = mysqli_connect('localhost', 'root', 'password', 'database_name');
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
mysqli_set_charset($conn,"utf8mb4");
2.2 Suchanfragen bearbeiten
Erhalten Sie, was der Benutzer in das Suchfeld eingegeben hat, zum Beispiel:
$keyword = $_REQUEST['keyword']
Wenn der Benutzer nichts eingegeben hat, müssen Sie es nicht speichern zur Datenbank.
if (empty($keyword)) {
return;
}
2.3 Speichern Sie die Suchergebnisse in der Datenbank
Speichern Sie dann die Suchergebnisse in der obigen Tabelle „search_history“, um den Suchverlauf des Benutzers aufzuzeichnen.
$sql = "INSERT INTO search_history (keyword, user_id) VALUES ('$keyword', 1)";
mysqli_query($conn, $sql);
Im obigen Code das Suchschlüsselwort und das eindeutige The des Benutzers Der Bezeichner (vorläufig 1) wird in den Feldern keyword und user_id in der Tabelle search_history gespeichert.
3. Suchverlauf anzeigen
Wenn Sie den Suchverlauf auf der Website anzeigen müssen, können Sie ihn durch Abfragen der Tabelle „search_history“ in der Datenbank abrufen. Im Folgenden stellen wir vor, wie diese Funktion über PHP implementiert wird.
3.1 Datenbank abfragen
$conn = mysqli_connect('localhost', 'root', 'password', 'database_name');
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
mysqli_set_charset($conn,"utf8mb4 " );
$sql = "SELECT * FROM search_history ORDER BY search_time DESC LIMIT 10";
$result = mysqli_query($conn, $sql);
Der obige Code stellt zunächst eine Verbindung zur Datenbank her und fragt alle Datensätze in der ab search_history-Tabelle. Sortieren Sie in umgekehrter chronologischer Reihenfolge und erhalten Sie die 10 aktuellsten Datensätze.
3.2 Verlaufsdatensätze abrufen
Als nächstes durchlaufen Sie die erhaltenen Datensätze und geben sie auf der Seite aus.
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) { echo $row["keyword"]; }
} else {
echo "暂无搜索历史记录";
}
Der obige Code ermittelt zunächst, ob das Abfrageergebnis leer ist. Wenn es nicht leer ist, durchläuft es den Schlüssel von Die Wörter werden auf der Seite ausgegeben. Wenn sie leer ist, wird eine Eingabeaufforderung ausgegeben.
4. Suchverlauf löschen
Wenn der Benutzer einen Suchverlauf löschen muss, kann er die zu löschenden Datensätze aus der Datenbank löschen, indem er auf der Seite eine Schaltfläche „Löschen“ hinzufügt.
4.1 Verbindung zur Datenbank herstellen
Der Vorgang ist derselbe wie oben und wird hier nicht wiederholt.
$conn = mysqli_connect('localhost', 'root', 'password', 'database_name');
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
mysqli_set_charset($conn,"utf8mb4");
4.2 Löschanfrage bearbeiten
Rufen Sie die ID des Datensatzes ab, den der Benutzer löschen muss, und löschen Sie ihn aus der Datenbank.
$id = $_REQUEST['id'];
if (!empty($id)) {
$sql = "DELETE FROM search_history WHERE id='$id'"; mysqli_query($conn, $sql);
}
Wenn id leer ist, ist keine Aktion erforderlich.
5. Zusammenfassung
Durch die obige Einführung können wir feststellen, dass sich die Implementierung von PHP-Suchdatensätzen hauptsächlich auf das Design der Datenbank konzentrieren muss. Durch Festlegen der entsprechenden Felder in der Tabelle werden die Suchergebnisse und die Aufzeichnungszeit in der Datenbank gespeichert, um die Abfrage zu erleichtern und Anzeige. Natürlich müssen Sie auf Sicherheitsaspekte achten und SQL-Injection und andere Angriffe vermeiden. Wenn Sie die Suchdatensatzfunktion flexibler implementieren möchten, können Sie gleichzeitig auch andere Technologien wie Cookies, Sitzungen usw. verwenden.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie Suchdatensätze in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!