Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie Suchdatensätze in PHP

So implementieren Sie Suchdatensätze in PHP

PHPz
PHPzOriginal
2023-04-18 09:48:18677Durchsuche

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:

  1. id: die eindeutige Kennung des Datensatzes, automatisch erhöht
  2. keyword: die vom Benutzer gesuchten Schlüsselwörter user
  3. search_time: user Die Suchzeit im Format datetime
  4. user_id: die eindeutige Kennung des Benutzers, kann leer sein

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:

  1. id ist der Primärschlüssel, der automatisch inkrementiert wird und zur eindeutigen Identifizierung eines Datensatzes verwendet wird.
  2. keyword ist das vom Benutzer gesuchte Schlüsselwort und darf nicht leer sein.
  3. search_time ist die Zeit, zu der die Suche erfolgt. Das Format ist vom Typ datetime und der Standardwert ist zur einfacheren Aufzeichnung auf die aktuelle Zeit eingestellt.
  4. user_id ist die eindeutige Kennung des Benutzers, die in einigen Szenarien Statistiken und Analysen des Benutzerverhaltens erleichtern kann. Da es sich jedoch nicht um ein erforderliches Feld handelt, kann es leer sein.

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!

Stellungnahme:
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