Maison  >  Article  >  développement back-end  >  PHP implémente les fonctions de collecte et de partage de questions-réponses sur le site Web de questions-réponses de connaissances.

PHP implémente les fonctions de collecte et de partage de questions-réponses sur le site Web de questions-réponses de connaissances.

王林
王林original
2023-07-01 19:01:131227parcourir

PHP réalise les fonctions de collecte et de partage des questions-réponses sur le site Web de questions et réponses de connaissances

1 Contexte
Avec le développement rapide d'Internet, le site Web de questions et réponses de connaissances est progressivement devenu une plate-forme importante permettant aux personnes d'acquérir des connaissances et des réponses. échanger des expériences. Sur un tel site, les utilisateurs peuvent publier leurs propres questions et d'autres utilisateurs peuvent répondre à ces questions. Afin d'offrir une meilleure expérience utilisateur, nous présenterons dans cet article comment utiliser PHP pour implémenter les fonctions de collecte et de partage de questions-réponses dans le site Web de questions-réponses de connaissances.

2. Mise en œuvre de la fonction de collecte de questions et réponses
Dans le site Web de questions et réponses de connaissances, les utilisateurs peuvent collecter les réponses aux questions et réponses qui les intéressent pour une consultation facile ultérieure. Voici un exemple de code pour implémenter la fonction de collecte de questions-réponses :

  1. Tout d'abord, nous devons créer une table de base de données pour stocker les informations de collecte de l'utilisateur. Vous pouvez créer une table nommée "signets" avec les champs suivants :

    CREATE TABLE bookmarks (
     id INT AUTO_INCREMENT PRIMARY KEY,
     user_id INT,
     answer_id INT,
     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
  2. Une fois l'utilisateur connecté, obtenez l'ID de l'utilisateur via le mécanisme de session PHP, puis insérez l'ID utilisateur et l'ID de réponse à la question dans la table "signets". Medium :

    // 获取当前用户的 ID
    $userId = $_SESSION['user_id'];
    
    // 获取问题答案的 ID
    $answerId = $_GET['answer_id'];
    
    // 插入数据到数据库表中
    $query = "INSERT INTO bookmarks (user_id, answer_id) VALUES ($userId, $answerId)";
    $result = mysqli_query($connection, $query);
  3. Lorsqu'un utilisateur a besoin de visualiser les réponses à ses questions préférées, nous pouvons interroger la table de la base de données en fonction de l'identifiant de l'utilisateur et afficher les réponses aux questions pertinentes :

    // 获取当前用户的 ID
    $userId = $_SESSION['user_id'];
    
    // 查询数据库表,获取用户收藏的问题答案
    $query = "SELECT * FROM bookmarks WHERE user_id = $userId";
    $result = mysqli_query($connection, $query);
    
    // 循环显示问题答案
    while ($row = mysqli_fetch_assoc($result)) {
     $answerId = $row['answer_id'];
    
     // 根据答案的 ID 查询相关的问题答案信息,并显示在页面上
     $query = "SELECT * FROM answers WHERE id = $answerId";
     $answerResult = mysqli_query($connection, $query);
    
     // 显示问题答案信息
     $answerRow = mysqli_fetch_assoc($answerResult);
     echo $answerRow['content'];
    }

3. Mise en œuvre du fonction de partage de questions et de réponses
De plus, collectez les réponses aux questions et les utilisateurs peuvent également partager les réponses aux questions qu'ils jugent utiles pour les autres utilisateurs. Voici un exemple de code pour implémenter la fonction de partage de question-réponse :

  1. Sur la page de réponse à la question, nous pouvons ajouter un bouton "Partager", déclencher la fonction JavaScript lorsque le bouton est cliqué et envoyer l'ID de réponse à la question à via requête AJAX Côté serveur :

    <button onclick="shareAnswer(<?php echo $answerId ?>)">分享</button>
    
    <script>
    function shareAnswer(answerId) {
     // 发送 AJAX 请求
     var xhr = new XMLHttpRequest();
     xhr.open('POST', 'share.php');
     xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     xhr.onload = function() {
         if (xhr.status === 200) {
             alert('问题答案分享成功!');
         } else {
             alert('问题答案分享失败!');
         }
     };
     xhr.send('answer_id=' + answerId);
    }
    </script>
  2. Côté serveur, obtenez l'ID de la réponse à la question via PHP et insérez-le dans une table de base de données appelée "shares" :

    // 获取问题答案的 ID
    $answerId = $_POST['answer_id'];
    
    // 插入数据到数据库表中
    $query = "INSERT INTO shares (answer_id) VALUES ($answerId)";
    $result = mysqli_query($connection, $query);
    if ($result) {
     echo 'success';
    } else {
     echo 'failure';
    }
  3. Lorsque d'autres utilisateurs voient la réponse à la question, nous Il peut afficher le nombre de fois où la réponse à cette question a été partagée :

    // 获取问题答案的 ID
    $answerId = $_GET['answer_id'];
    
    // 查询数据库表,获取问题答案的分享次数
    $query = "SELECT COUNT(*) AS shares_count FROM shares WHERE answer_id = $answerId";
    $result = mysqli_query($connection, $query);
    $row = mysqli_fetch_assoc($result);
    
    // 显示问题答案的分享次数
    echo $row['shares_count'] . "次分享";

4. Résumé
Grâce à l'exemple de code ci-dessus, nous pouvons implémenter les fonctions de collecte et de partage des réponses aux questions dans le site Web de questions-réponses de connaissances. La fonction de collecte permet aux utilisateurs de sauvegarder les réponses aux questions qui les intéressent pour les consulter ultérieurement ; la fonction de partage permet aux utilisateurs de transmettre des questions et réponses précieuses à d'autres utilisateurs. La mise en œuvre de ces fonctions est très importante pour améliorer l'expérience utilisateur du site Web de questions et réponses sur les connaissances, et facilite également la communication et le partage entre les utilisateurs. J'espère que cet article pourra être utile aux développeurs !

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