Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Memisahkan dan Menyimpan Kata Kunci daripada Senarai Dipisahkan Koma dalam PHP dan MySQL?

Bagaimana untuk Memisahkan dan Menyimpan Kata Kunci daripada Senarai Dipisahkan Koma dalam PHP dan MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 04:45:29688semak imbas

How to Split and Store Keywords from a Comma-Separated List in PHP and MySQL?

Pemisahan dan Penyimpanan Kata Kunci yang Berkesan dalam PHP dan MySQL

Dalam pengurusan pangkalan data, anda mungkin menghadapi senario di mana anda perlu mengekstrak dan menyusun kata kunci daripada bidang yang diberikan. Artikel ini menunjukkan pendekatan yang dioptimumkan menggunakan PHP dan MySQL untuk memisahkan kata kunci, menyimpannya dalam jadual khusus dan memautkannya kembali kepada data asal menggunakan jadual perantaraan.

Pernyataan Masalah:

Memandangkan jadual yang mengandungi ID siaran dan teg berkaitan yang disimpan sebagai senarai dipisahkan koma, tugas itu melibatkan:

  • Memisahkan teg kepada kata kunci individu
  • Menyimpan kata kunci unik dalam jadual berasingan
  • Mewujudkan sambungan perantaraan antara siaran dan kata kunci

Penyelesaian:

Skema Pangkalan Data Dioptimumkan:

  • Post_Tags: Menyimpan data dan teg catatan asal sebagai rentetan
  • Kata kunci: Menyimpan kata kunci unik
  • Post_Keywords: Jadual perantaraan memautkan catatan kepada kata kunci

Kod PHP:

<code class="php">// Connect to the database
$mysqli = new mysqli($host, $user, $password, $database);

// Initialize variables
$stmt = $mysqli->prepare("SELECT post_id, tags_csv FROM post_tags");
$stmt->execute();
$result = $stmt->get_result();

// Loop through the post tags
while ($row = $result->fetch_assoc()) {
    $post_id = $row['post_id'];
    $tags = explode(',', $row['tags_csv']);

    // Insert unique keywords into the Keywords table
    foreach ($tags as $tag) {
        $stmt = $mysqli->prepare("INSERT IGNORE INTO keywords (name) VALUES (?)");
        $stmt->bind_param("s", $tag);
        $stmt->execute();
    }

    // Get keyword IDs and insert into Post_Keywords table
    foreach ($tags as $tag) {
        $stmt = $mysqli->prepare("SELECT keyword_id FROM keywords WHERE name = ?");
        $stmt->bind_param("s", $tag);
        $stmt->execute();
        $result = $stmt->get_result();
        $keyword_id = $result->fetch_assoc()['keyword_id'];

        $stmt = $mysqli->prepare("INSERT IGNORE INTO post_keywords (post_id, keyword_id) VALUES (?, ?)");
        $stmt->bind_param("ii", $post_id, $keyword_id);
        $stmt->execute();
    }
}</code>

Faedah:

  • Skema yang dioptimumkan untuk pertanyaan kata kunci yang cekap
  • Memastikan keunikan kata kunci dengan menggunakan jadual Kata Kunci
  • Mengekalkan integriti data melalui perhubungan jadual perantaraan

Nota:

Penyelesaian yang disediakan hanya tertumpu pada fungsi teras dan tidak mengambil kira aspek tambahan seperti pengesahan data atau pengendalian ralat.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan dan Menyimpan Kata Kunci daripada Senarai Dipisahkan Koma dalam PHP dan MySQL?. 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