Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan rekod carian dalam php

Bagaimana untuk melaksanakan rekod carian dalam php

PHPz
PHPzasal
2023-04-18 09:48:18640semak imbas

Dengan perkembangan Internet, enjin carian telah menjadi salah satu saluran penting untuk orang ramai mendapatkan maklumat. Banyak laman web juga dilengkapi dengan fungsi carian mereka sendiri untuk membantu pengguna mencari kandungan yang mereka perlukan dengan cepat, PHP, sebagai bahasa pengaturcaraan yang biasa digunakan, juga boleh melaksanakan fungsi rakaman carian untuk memberikan pengguna pengalaman pengguna yang lebih baik. Artikel ini akan memperkenalkan cara melaksanakan rekod carian PHP.

1. Reka bentuk pangkalan data

Perkara pertama yang perlu dipertimbangkan ialah reka bentuk pangkalan data. Dalam artikel ini, MySQL digunakan sebagai contoh.

1.1 Reka bentuk jadual

Anda perlu mencipta jadual untuk menyimpan rekod carian pengguna, termasuk medan berikut:

  1. id: pengecam unik rekod , ditambah secara automatik
  2. kata kunci: kata kunci yang dicari oleh pengguna
  3. search_time: masa pengguna mencari, dalam format datetime
  4. user_id: pengecam unik pengguna, yang boleh kosong

Struktur jadual adalah seperti berikut:

BUAT JADUAL search_history (
id int(11) BUKAN NULL AUTO_INCREMENT,
keyword varchar(255) BUKAN NULL lalai ' ',
search_time tarikh masa BUKAN NULL lalai CURRENT_TIMESTAMP,
user_id int(11) lalai NULL,
UTAMA KUNCI ()id >) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

1.2 Perihalan medan

Dalam jadual di atas, anda perlu memberi perhatian kepada perkara berikut:

    id ialah kunci utama, ditambah secara automatik dan digunakan untuk mengenal pasti rekod secara unik.
  1. kata kunci ialah kata kunci yang dicari oleh pengguna dan tidak dibenarkan kosong.
  2. masa_carian ialah masa apabila carian berlaku, format ialah jenis masa tarikh dan nilai lalai ditetapkan kepada masa semasa untuk rakaman mudah.
  3. user_id ialah pengecam unik pengguna, yang boleh memudahkan statistik dan analisis tingkah laku pengguna dalam beberapa senario, tetapi ia bukan medan yang diperlukan, jadi ia boleh kosong.
2. Rekodkan sejarah carian

Dalam halaman, fungsi carian pengguna boleh dilaksanakan melalui borang, dan berdasarkan kandungan carian, ia disimpan ke jadual carian_sejarah yang disebutkan di atas. Kod khusus adalah seperti berikut:

2.1 Sambung ke pangkalan data

Mula-mula anda perlu menyambung ke pangkalan data untuk menyimpan hasil carian dalam pangkalan data.

$conn = mysqli_connect('localhost', 'root', 'password', 'database_name');

if (!$conn) {

die("Connection failed: " . mysqli_connect_error());
}

mysqli_set_charset($conn,"utf8mb4");

2.2 Memproses permintaan carian

Dapatkan kandungan yang dimasukkan oleh pengguna dalam kotak carian, contohnya:

$kata kunci = $_REQUEST ['keyword'];

Jika pengguna tidak memasukkan apa-apa, anda tidak perlu menyimpannya ke pangkalan data.

if (empty($keyword)) {

return;
}

2.3 Simpan hasil carian ke pangkalan data

Kemudian, simpan carian hasil Pergi ke jadual carian_sejarah di atas untuk merekodkan sejarah carian pengguna.

$sql = "INSERT IN TO search_history (keyword, user_id) NILAI ('$keyword', 1)";

mysqli_query($conn, $sql);

Dalam perkara di atas kod , simpan kata kunci yang dicari dan pengecam unik pengguna (sementara 1) pada kata kunci dan medan user_id dalam jadual carian_sejarah.

3. Paparkan sejarah carian

Jika anda perlu memaparkan sejarah carian di tapak web, anda boleh mendapatkannya dengan menanyakan jadual carian_sejarah dalam pangkalan data. Di bawah ini kami akan memperkenalkan cara melaksanakan fungsi ini melalui PHP.

3.1 Tanya pangkalan data

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

Kod di atas mula-mula bersambung ke pangkalan data, dan menanyakan semua rekod dalam jadual carian_sejarah, menyusunnya dalam susunan kronologi terbalik dan memperoleh 10 rekod terbaharu teratas.

3.2 Dapatkan rekod sejarah

Seterusnya, putar rekod yang diperoleh dan keluarkannya ke halaman.

jika (mysqli_num_rows($result) > 0) {

while($row = mysqli_fetch_assoc($result)) {
    echo $row["keyword"];
}
} lain {

echo "暂无搜索历史记录";
}

Kod di atas dahulu menentukan Periksa sama ada hasil pertanyaan kosong Jika ia tidak kosong, kata kunci setiap rekod akan dikeluarkan ke halaman melalui lintasan gelung Jika ia kosong, mesej segera akan dikeluarkan.

4. Padamkan sejarah carian

Jika pengguna perlu memadamkan beberapa sejarah carian, dia boleh mengosongkan rekod yang perlu dipadamkan daripada pangkalan data dengan menambahkan butang "Padam" pada halaman .

4.1 Menyambung ke pangkalan data

Operasi adalah sama seperti di atas dan tidak akan diulang di sini.

$conn = mysqli_connect('localhost', 'root', 'password', 'database_name');

if (!$conn) {

die("Connection failed: " . mysqli_connect_error());
}

mysqli_set_charset($conn,"utf8mb4");

4.2 Proses permintaan pemadaman

Dapatkan id rekod yang pengguna perlu padamkan dan padamkannya daripada pangkalan data.

$id = $_REQUEST['id'];

jika (!kosong($id)) {

$sql = "DELETE FROM search_history WHERE id='$id'";
mysqli_query($conn, $sql);
}

jika Jika id kosong, tiada tindakan diperlukan.

5

Melalui pengenalan di atas, kita dapati bahawa pelaksanaan rekod carian PHP terutamanya perlu berkisar pada reka bentuk pangkalan data Dengan menetapkan medan yang sepadan dalam jadual, hasil carian dan masa rakaman disimpan dalam pangkalan data untuk memudahkan pertanyaan dan pameran. Sudah tentu, anda perlu memberi perhatian kepada isu keselamatan dan mengelakkan suntikan SQL dan serangan lain. Pada masa yang sama, jika anda perlu melaksanakan fungsi rekod carian dengan lebih fleksibel, anda juga boleh menggunakan teknologi lain, seperti kuki, sesi, dsb.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan rekod carian dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn