Maison > Article > développement back-end > Utilisez PHP pour développer des fonctions d’acceptation et de recommandation de questions-réponses dans un site Web de questions et réponses de connaissances.
Utilisez PHP pour développer des fonctions d'acceptation et de recommandation de questions-réponses dans les sites Web de questions-réponses de connaissances
Dans les sites Web de questions-réponses de connaissances, les utilisateurs posent des questions et d'autres utilisateurs fournissent des réponses. Il arrive souvent qu'une ou plusieurs des réponses multiples soient reconnues comme la meilleure réponse par la personne qui pose la question ou par d'autres utilisateurs. Par conséquent, afin de mieux afficher et gérer les réponses aux questions, nous présenterons dans cet article comment développer les fonctions d'adoption et de recommandation des réponses aux questions à l'aide de PHP.
Tout d'abord, nous devons concevoir une base de données pour stocker des informations sur les questions et réponses. Ici, nous créons trois tableaux.
questions
stocke les informations sur les questions, telles que l'ID de la question, le titre, le contenu, l'ID de l'interrogateur, l'heure des questions, etc. questions
表存储问题信息,例如问题 ID、标题、内容、提问者 ID、提问时间等。answers
表存储答案信息,例如答案 ID、问题 ID、回答内容、回答者 ID、回答时间等。accepted_answers
表用于存储被采纳的答案信息,其中包含问题 ID、被采纳答案 ID。以下是数据库结构的示例:
CREATE TABLE questions ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255), content TEXT, owner_id INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE answers ( id INT PRIMARY KEY AUTO_INCREMENT, question_id INT, content TEXT, owner_id INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE accepted_answers ( question_id INT PRIMARY KEY, answer_id INT );
在问题详情页面上,我们需要显示问题的标题、内容以及相关答案。对于当前问题,我们还需要显示被采纳的答案(如果有的话)。
首先,我们要获取问题的信息并显示在页面上。我们可以使用以下代码示例:
<?php // 获取问题 ID $questionId = $_GET['id']; // 获取问题信息 $questionQuery = "SELECT * FROM questions WHERE id = :id"; $questionStmt = $pdo->prepare($questionQuery); $questionStmt->bindParam(':id', $questionId, PDO::PARAM_INT); $questionStmt->execute(); $question = $questionStmt->fetch(PDO::FETCH_ASSOC); // 显示问题标题和内容 echo "<h1>" . $question['title'] . "</h1>"; echo "<p>" . $question['content'] . "</p>"; // 获取问题的回答信息 $answersQuery = "SELECT * FROM answers WHERE question_id = :question_id"; $answersStmt = $pdo->prepare($answersQuery); $answersStmt->bindParam(':question_id', $questionId, PDO::PARAM_INT); $answersStmt->execute(); $answers = $answersStmt->fetchAll(PDO::FETCH_ASSOC); // 显示回答列表 foreach ($answers as $answer) { echo "<div>"; echo "<p>" . $answer['content'] . "</p>"; // 检查答案是否被采纳 if ($answer['id'] === $question['accepted_answer_id']) { echo "<span>已采纳</span>"; } else { // 显示采纳按钮 echo "<a href='accept-answer.php?question=" . $questionId . "&answer=" . $answer['id'] . "'>采纳该答案</a>"; } echo "</div>"; } ?>
以上代码中,我们首先获取问题的信息并展示在页面上。然后,获取问题相关的答案并逐个显示。对于每个答案,我们检查其是否被采纳。如被采纳,则显示“已采纳”标志;反之,则显示一个标签,点击该标签将调用 accept-answer.php
进行答案的采纳。
在 accept-answer.php
文件中,我们需要处理答案的采纳请求,并更新 accepted_answers
answers
stocke les informations de réponse, telles que l'ID de réponse, l'ID de question, le contenu de la réponse, l'ID du répondeur, le temps de réponse, etc. La table accepted_answers
est utilisée pour stocker les informations sur les réponses acceptées, qui incluent l'ID de la question et l'ID de la réponse acceptée. Ce qui suit est un exemple de structure de base de données : <?php // 获取问题 ID 和答案 ID $questionId = $_GET['question']; $answerId = $_GET['answer']; // 将答案 ID 更新为被采纳 $acceptAnswerQuery = "UPDATE accepted_answers SET answer_id = :answer_id WHERE question_id = :question_id"; $acceptAnswerStmt = $pdo->prepare($acceptAnswerQuery); $acceptAnswerStmt->bindParam(':answer_id', $answerId, PDO::PARAM_INT); $acceptAnswerStmt->bindParam(':question_id', $questionId, PDO::PARAM_INT); $acceptAnswerStmt->execute(); // 返回问题详情页 header("Location: question.php?id=" . $questionId); ?>
accept-answer.php
pour accepter la réponse. 🎜accept-answer.php
, nous devons traiter la demande d'acceptation de réponse et mettre à jour accepted_answers
Tableau. 🎜🎜Voici un exemple de code qui gère une demande de réponse acceptée : 🎜rrreee🎜Dans le code ci-dessus, nous obtenons d'abord les identifiants de la question et de la réponse. Ensuite, mettez à jour l’ID de réponse avec la réponse acceptée en exécutant une instruction SQL. Enfin, nous redirigeons vers la page de détails du problème et actualisons la page pour afficher le dernier statut d'adoption. 🎜🎜Grâce aux étapes ci-dessus, nous avons mis en œuvre avec succès la fonction d'adoption et de recommandation de réponses aux questions du site Web de questions et réponses sur les connaissances. Les utilisateurs peuvent adopter les réponses qu'ils approuvent dans la page de détails des questions et améliorer la qualité des questions et réponses grâce à cette fonctionnalité. Cela aide les utilisateurs à mieux capturer et partager les connaissances. 🎜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!