Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan PHP untuk membangunkan fungsi pelabelan dan pengelasan artikel mudah

Cara menggunakan PHP untuk membangunkan fungsi pelabelan dan pengelasan artikel mudah

WBOY
WBOYasal
2023-09-20 17:15:11885semak imbas

Cara menggunakan PHP untuk membangunkan fungsi pelabelan dan pengelasan artikel mudah

Cara menggunakan PHP untuk membangunkan fungsi pelabelan dan klasifikasi artikel yang mudah

Dalam proses pembangunan laman web, fungsi pelabelan dan pengelasan artikel adalah sangat keperluan bersama. Dengan menambahkan tag dan kategori pada artikel, pengguna boleh menyemak imbas dan menapisnya mengikut keperluan mereka. Artikel ini akan menggunakan contoh kod khusus untuk memperkenalkan cara menggunakan PHP untuk membangunkan teg artikel mudah dan fungsi klasifikasi.

1. Reka bentuk pangkalan data

Pertama, kita perlu mereka bentuk jadual pangkalan data untuk menyimpan artikel dan tag yang sepadan serta maklumat klasifikasi. Kita boleh mereka bentuk tiga jadual: jadual artikel (artikel), jadual tag (tag) dan jadual kategori (kategori).

  1. Jadual artikel (artikel):

    • id: ID artikel (kunci utama)
    • #🎜 tajuk : Tajuk artikel
    • kandungan: Kandungan artikel
    • id_kategori: ID Kategori (kunci asing)
  2. #🎜 🎜 #Tag jadual (tag):
  3. id: tag ID (kunci utama)
    • nama: nama tag
    • #🎜 🎜#
    Kategori:
  4. id: ID Kategori (kunci utama)

      nama: Nama kategori #🎜🎜 🎜#
    • 2. Tambah tag dan fungsi klasifikasi pada artikel
    Seterusnya, mari kita laksanakan fungsi menambah tag dan klasifikasi pada artikel. Apabila pengguna menerbitkan artikel, mereka boleh memilih teg dan kategori artikel tersebut.

Tambah halaman artikel

Pertama, buat halaman untuk menambah artikel (add_article.php), yang mengandungi borang yang boleh diisi oleh pengguna Tajuk, kandungan, tag dan kategori artikel:
    <form action="add_article.php" method="POST">
        <input type="text" name="title" placeholder="文章标题"><br><br>
        <textarea name="content" placeholder="文章内容"></textarea><br><br>
        <input type="text" name="tags" placeholder="标签(多个标签用逗号分隔)"><br><br>
        <select name="category">
            <option value="">选择分类</option>
            <!-- 根据分类表动态生成选项 -->
        </select><br><br>
        <input type="submit" value="发布文章">
    </form>
  1. Mengendalikan penghantaran artikel

Dalam fail add_article.php, kita perlu mengendalikan serahan pengguna Data borang menyimpan tajuk, kandungan, tag dan kategori artikel dalam pangkalan data:
    <?php
    // 连接数据库
    $conn = mysqli_connect("localhost", "username", "password", "database");
    
    // 处理提交的数据
    $title = $_POST['title'];
    $content = $_POST['content'];
    $tags = $_POST['tags'];
    $category = $_POST['category'];
    
    // 插入文章数据
    $result = mysqli_query($conn, "INSERT INTO article (title, content, category_id) VALUES ('$title', '$content', '$category')");
    
    // 获取插入文章的ID
    $articleId = mysqli_insert_id($conn);
    
    // 处理标签
    $tagArray = explode(",", $tags);
    foreach ($tagArray as $tag) {
        $tag = trim($tag);
        // 查询标签是否存在
        $tagResult = mysqli_query($conn, "SELECT id FROM tags WHERE name = '$tag'");
        if (mysqli_num_rows($tagResult) == 0) {
            // 标签不存在,插入新的标签
            mysqli_query($conn, "INSERT INTO tags (name) VALUES ('$tag')");
            // 获取插入标签的ID
            $tagId = mysqli_insert_id($conn);
        } else {
            $tagId = mysqli_fetch_assoc($tagResult)['id'];
        }
        // 插入标签和文章的关联关系
        mysqli_query($conn, "INSERT INTO article_tags (article_id, tag_id) VALUES ($articleId, $tagId)");
    }
    
    // 关闭数据库连接
    mysqli_close($conn);
    
    // 跳转到文章详情页
    header("Location: article.php?id=$articleId");
    exit;
    ?>
  1. Dalam kod di atas, kami mula-mula menyambung ke pangkalan data, dan kemudian mendapatkan data artikel yang diserahkan oleh pengguna. Seterusnya, kami memasukkan tajuk, kandungan dan kategori artikel ke dalam jadual artikel. Kemudian, kami membahagikan medan label kepada tatasusunan dengan koma dan lelaran melalui setiap label dalam tatasusunan. Untuk setiap teg, kami mula-mula bertanya sama ada teg itu sudah wujud dalam pangkalan data Jika ia tidak wujud, masukkan teg baharu dan dapatkan ID teg tersebut. Akhir sekali, kami memasukkan ID artikel dan ID teg ke dalam jadual tag artikel.
3. Paparkan tag artikel dan kategori

Akhir sekali, mari kita laksanakan fungsi memaparkan tag dan kategori artikel. Pengguna boleh mengklik pada tag artikel atau kategori untuk melihat senarai artikel yang sepadan.

Paparkan halaman senarai artikel

Pertama, buat halaman yang memaparkan senarai artikel (articles.php), yang mengandungi semua tajuk artikel Dan tag dan kategori yang sepadan:
    <ul>
        <?php
        // 连接数据库
        $conn = mysqli_connect("localhost", "username", "password", "database");
    
        // 查询文章数据
        $result = mysqli_query($conn, "SELECT * FROM article");
    
        // 输出文章列表
        while ($row = mysqli_fetch_assoc($result)) {
            echo "<li><a href='article.php?id=".$row['id']."'>".$row['title']."</a>";
            
            // 查询文章的标签
            echo "<ul>";
            $tagResult = mysqli_query($conn, "SELECT t.name FROM tags t INNER JOIN article_tags at ON t.id = at.tag_id WHERE at.article_id = ".$row['id']);
            while ($tagRow = mysqli_fetch_assoc($tagResult)) {
                echo "<li>".$tagRow['name']."</li>";
            }
            echo "</ul>";
    
            // 查询文章的分类
            echo "<ul>";
            $categoryResult = mysqli_query($conn, "SELECT c.name FROM categories c WHERE c.id = ".$row['category_id']);
            while ($categoryRow = mysqli_fetch_assoc($categoryResult)) {
                echo "<li>".$categoryRow['name']."</li>";
            }
            echo "</ul>";
            
            echo "</li>";
        }
    
        // 关闭数据库连接
        mysqli_close($conn);
        ?>
    </ul>
  1. Dalam kod di atas, kami mula-mula menyambung ke pangkalan data, dan kemudian menanyakan semua data artikel. Seterusnya, kami menggunakan gelung untuk mengeluarkan tajuk setiap artikel dan menanyakan teg dan kategori artikel yang sepadan. Akhirnya, kami menutup sambungan pangkalan data.

Paparkan butiran artikel

Apabila pengguna mengklik pada tajuk artikel, kami perlu memaparkan kandungan terperinci artikel dan tag yang sepadan dan kategori.
  1. Buat halaman (article.php) yang memaparkan butiran artikel Halaman tersebut mengandungi tajuk, kandungan, tag dan kategori artikel:
  2. <?php
    // 获取文章ID
    $articleId = $_GET['id'];
    
    // 连接数据库
    $conn = mysqli_connect("localhost", "username", "password", "database");
    
    // 查询文章数据
    $articleResult = mysqli_query($conn, "SELECT * FROM article WHERE id = $articleId");
    $articleRow = mysqli_fetch_assoc($articleResult);
    
    // 查询文章的标签
    $tagsResult = mysqli_query($conn, "SELECT t.name FROM tags t INNER JOIN article_tags at ON t.id = at.tag_id WHERE at.article_id = $articleId");
    
    // 查询文章的分类
    $categoryResult = mysqli_query($conn, "SELECT c.name FROM categories c WHERE c.id = ".$articleRow['category_id']);
    $categoryRow = mysqli_fetch_assoc($categoryResult);
    
    // 关闭数据库连接
    mysqli_close($conn);
    ?>
    
    <h1><?php echo $articleRow['title']; ?></h1>
    <p><?php echo $articleRow['content']; ?></p>
    
    <h3>标签</h3>
    <ul>
        <?php
        while ($tagRow = mysqli_fetch_assoc($tagsResult)) {
            echo "<li>".$tagRow['name']."</li>";
        }
        ?>
    </ul>
    
    <h3>分类</h3>
    <ul>
        <li><?php echo $categoryRow['name']; ?></li>
    </ul>
Dalam. kod di atas, kami mula-mula mendapatkan ID artikel dan menyambung ke pangkalan data. Kemudian, kami menanyakan data artikel, teg dan data klasifikasi dan mengeluarkannya ke halaman. Akhirnya, kami menutup sambungan pangkalan data.

Melalui langkah di atas, kami telah menyedari penggunaan PHP untuk membangunkan fungsi pelabelan dan pengelasan artikel yang mudah. Pengguna boleh memilih teg dan kategori semasa menerbitkan artikel, dan menyemak imbas senarai dan butiran artikel yang sepadan dengan mengklik pada teg dan kategori. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Cara menggunakan PHP untuk membangunkan fungsi pelabelan dan pengelasan artikel mudah. 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