Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour développer des fonctions simples d'étiquetage et de classification d'articles

Comment utiliser PHP pour développer des fonctions simples d'étiquetage et de classification d'articles

WBOY
WBOYoriginal
2023-09-20 17:15:11788parcourir

Comment utiliser PHP pour développer des fonctions simples détiquetage et de classification darticles

Comment utiliser PHP pour développer des fonctions simples d'étiquetage et de classification d'articles

Dans le processus de développement de sites Web, les fonctions d'étiquetage et de classification d'articles sont des exigences très courantes. En ajoutant des balises et des catégories aux articles, les utilisateurs peuvent les parcourir et les filtrer en fonction de leurs besoins. Cet article présentera comment utiliser PHP pour développer des balises d'articles simples et des fonctions de classification à travers des exemples de code spécifiques.

1. Conception de la base de données

Tout d'abord, nous devons concevoir une table de base de données pour stocker les articles, les balises correspondantes et les informations de classification. Nous pouvons concevoir trois tableaux : le tableau des articles (article), le tableau des balises (tags) et le tableau des catégories (catégories).

  1. Tableau d'articles (article) :

    • id : identifiant de l'article (clé primaire)
    • title : titre de l'article
    • content : contenu de l'article
    • category_id : identifiant de catégorie (clé étrangère)
  2. tableau de balises (tags):

    • id: ID de balise (clé primaire)
    • name: Nom de balise
  3. Catégories:

    • id: ID de catégorie (clé primaire)
    • name: Nom de catégorie

2. Ajouter des balises et des fonctions de classification aux articles

Ensuite, implémentons les fonctions d'ajout de balises et de classification aux articles. Lorsque les utilisateurs publient un article, ils peuvent choisir la balise et la catégorie de l'article.

  1. Ajouter une page d'article

Tout d'abord, créez une page pour ajouter des articles (add_article.php). La page contient un formulaire où les utilisateurs peuvent remplir le titre, le contenu, les balises et les catégories de l'article :

<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. Traitement. soumission d'article

Dans le fichier add_article.php, nous devons traiter les données du formulaire soumises par l'utilisateur et stocker le titre, le contenu, les balises et les catégories de l'article dans la base de données :

<?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;
?>

Dans le code ci-dessus, nous d'abord connectez-vous à la base de données, puis obtenez les données de l'article soumises par l'utilisateur. Ensuite, nous insérons le titre, le contenu et la catégorie de l'article dans le tableau des articles. Ensuite, nous divisons le champ d'étiquette en un tableau par des virgules et parcourons chaque étiquette du tableau. Pour chaque balise, nous demandons d'abord si la balise existe déjà dans la base de données. Si elle n'existe pas, insérons une nouvelle balise et obtenons l'ID de la balise. Enfin, nous insérons l’ID de l’article et l’ID de la balise dans la table des balises d’article.

3. Afficher les balises et les catégories d'articles

Enfin, implémentons la fonction d'affichage des balises et des catégories d'articles. Les utilisateurs peuvent cliquer sur la balise ou la catégorie de l'article pour afficher la liste d'articles correspondante.

  1. Afficher la page de la liste des articles

Tout d'abord, créez une page pour afficher la liste des articles (articles.php). La page contient tous les titres des articles et les balises et catégories correspondantes :

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

Dans le code ci-dessus, nous nous connectons d'abord à la base de données, puis interrogez toutes les données de l'article. Ensuite, nous utilisons une boucle pour afficher le titre de chaque article et interroger les balises et catégories de l'article correspondant. Enfin, nous fermons la connexion à la base de données.

  1. Afficher les détails de l'article

Lorsque l'utilisateur clique sur le titre de l'article, nous devons afficher le contenu détaillé de l'article ainsi que les balises et catégories correspondantes.

Créez une page (article.php) qui affiche les détails de l'article. La page contient le titre, le contenu, les balises et les catégories de l'article :

<?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>

Dans le code ci-dessus, on récupère d'abord l'ID de l'article et se connecter à la base de données. Ensuite, nous interrogeons les données d'article, les balises et les données de classification et les affichons sur la page. Enfin, nous fermons la connexion à la base de données.

Grâce aux étapes ci-dessus, nous avons réalisé le développement de fonctions simples d'étiquetage et de classification d'articles en utilisant PHP. Les utilisateurs peuvent sélectionner des balises et des catégories lors de la publication d'articles et parcourir la liste et les détails des articles correspondants en cliquant sur les balises et les catégories. J'espère que cet article vous sera utile !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn