> 백엔드 개발 > PHP 튜토리얼 > PHP는 지식 Q&A 사이트에 질문 답변 수집 및 공유 기능을 구현합니다.

PHP는 지식 Q&A 사이트에 질문 답변 수집 및 공유 기능을 구현합니다.

王林
풀어 주다: 2023-07-01 19:02:01
원래의
1289명이 탐색했습니다.

PHP는 지식질문답 사이트에서 질문답변 수집 및 공유 기능을 실현합니다

1. 배경
인터넷의 급속한 발전과 함께 지식질문답 사이트는 점차 사람들이 지식을 얻고, 지식을 습득하는 중요한 플랫폼으로 자리 잡았습니다. 경험을 교환합니다. 이러한 사이트에서 사용자는 자신의 질문을 게시할 수 있고 다른 사용자는 해당 질문에 답변할 수 있습니다. 더 나은 사용자 경험을 제공하기 위해 이 기사에서는 지식 Q&A 웹사이트에서 PHP를 사용하여 질문 답변 수집 및 공유 기능을 구현하는 방법을 소개합니다.

2. 질문답변 수집 기능 구현
지식질문답 사이트에서는 사용자가 관심 있는 질문과 답변을 모아 나중에 쉽게 볼 수 있습니다. 다음은 질문 답변 수집 기능을 구현한 코드 예시입니다.

  1. 먼저 사용자의 수집 정보를 저장할 데이터베이스 테이블을 생성해야 합니다. 다음 필드를 사용하여 "bookmarks"라는 테이블을 생성할 수 있습니다.

    CREATE TABLE bookmarks (
     id INT AUTO_INCREMENT PRIMARY KEY,
     user_id INT,
     answer_id INT,
     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    로그인 후 복사
  2. 사용자가 로그인한 후 PHP 세션 메커니즘을 통해 사용자 ID를 얻은 다음 사용자 ID와 질문 답변 ID를 "bookmarks" 테이블에 삽입합니다. 매체:

    // 获取当前用户的 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. 사용자가 자신이 좋아하는 질문에 대한 답변을 확인해야 하는 경우 사용자 ID를 기반으로 데이터베이스 테이블을 쿼리하고 관련 질문 답변을 표시할 수 있습니다.

    // 获取当前用户的 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. 질문 답변 공유 기능
추가로 질문에 대한 답변을 수집하고, 사용자는 자신이 가치 있다고 생각하는 질문에 대한 답변을 다른 사용자에게 공유할 수도 있습니다. 다음은 질문 답변 공유 기능을 구현하기 위한 코드 예제입니다.

  1. 질문 답변 페이지에 "공유" 버튼을 추가하고, 버튼을 클릭하면 JavaScript 기능이 실행되며, 질문 답변 ID를 다음으로 보낼 수 있습니다. AJAX 요청을 통해 서버 측:

    <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. 서버 측에서 PHP를 통해 질문 답변의 ID를 가져와 "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. 다른 사용자가 질문 답변을 볼 때, we 이 질문에 대한 답변이 공유된 횟수를 표시할 수 있습니다:

    // 获取问题答案的 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. 요약
위의 코드 예시를 통해 지식Q&A 사이트의 질문 답변 수집 및 공유 기능을 구현할 수 있습니다. 수집 기능을 통해 사용자는 나중에 볼 수 있도록 관심 있는 질문에 대한 답변을 저장할 수 있으며, 공유 기능을 통해 다른 사용자에게 귀중한 질문과 답변을 전달할 수 있습니다. 이러한 기능의 구현은 지식질문답 사이트의 사용자 경험을 향상시키고 사용자 간의 의사소통 및 공유를 촉진하는 데 매우 중요합니다. 이 글이 개발자들에게 도움이 되기를 바랍니다!

위 내용은 PHP는 지식 Q&A 사이트에 질문 답변 수집 및 공유 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿