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

PHP는 지식 Q&A 웹사이트에서 질문 토론 및 답변 편집 기능을 구현합니다.

WBOY
WBOY원래의
2023-07-02 19:07:371459검색

PHP는 지식 Q&A 사이트에서 질문 토론 및 답변 편집 기능을 구현합니다.

오늘날의 정보 폭발 시대에 지식 Q&A 사이트는 사람들이 지식을 얻고 경험을 교환하는 중요한 플랫폼이 되었습니다. 개발자에게 Stack Overflow와 유사한 질문 토론 및 답변 편집 기능을 구현하는 것은 매우 어려운 작업입니다. 이 문서에서는 PHP를 사용하여 이러한 기능을 구현하는 방법을 설명하고 코드 예제를 제공합니다.

  1. 데이터베이스 설계 및 생성

먼저, 질문과 답변 정보를 저장할 데이터베이스를 설계하고 생성해야 합니다. 이 예에서는 MySQL 데이터베이스를 사용하고 질문과 답변이라는 두 개의 테이블을 만듭니다.

CREATE TABLE questions (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE answers (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    question_id INT(11) NOT NULL,
    content TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

질문 테이블은 질문의 제목, 내용, 생성 시간을 저장하는 데 사용되며, 답변 테이블은 답변 내용, 질문 ID, 생성 시간을 저장하는 데 사용됩니다.

  1. 이슈 목록 및 이슈 세부정보 표시

다음으로 이슈 목록 및 이슈 세부정보를 표시하는 PHP 코드를 작성해야 합니다. 먼저, 질문 목록을 표시할 index.php라는 파일을 만듭니다.

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");

// 查询所有问题
$query = "SELECT * FROM questions ORDER BY created_at DESC";
$result = mysqli_query($conn, $query);

// 显示问题列表
while ($row = mysqli_fetch_assoc($result)) {
    echo "<h2><a href='question.php?id={$row['id']}'>{$row['title']}</a></h2>";
    echo "<p>{$row['content']}</p>";
    echo "<hr>";
}
?>

그런 다음 질문 세부 정보와 관련 답변을 표시하는 질문.php라는 파일을 만듭니다.

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");

// 获取问题 ID
$id = $_GET['id'];

// 查询问题的详细信息
$query = "SELECT * FROM questions WHERE id = $id";
$result = mysqli_query($conn, $query);
$question = mysqli_fetch_assoc($result);

// 查询问题的答案列表
$query = "SELECT * FROM answers WHERE question_id = $id ORDER BY created_at DESC";
$result = mysqli_query($conn, $query);

// 显示问题和答案
echo "<h1>{$question['title']}</h1>";
echo "<p>{$question['content']}</p>";

while ($row = mysqli_fetch_assoc($result)) {
    echo "<h3>答案</h3>";
    echo "<p>{$row['content']}</p>";
    echo "<hr>";
}
?>
  1. 질문과 답변 제출

마지막으로, 사용자가 제출한 질문과 답변을 처리하기 위한 PHP 코드를 작성해야 합니다. 사용자가 제출한 질문과 답변을 처리하고 데이터베이스에 저장하는 submit.php라는 파일을 만듭니다.

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 提交问题
    if (isset($_POST['question'])) {
        $title = $_POST['title'];
        $content = $_POST['content'];

        $query = "INSERT INTO questions (title, content) VALUES ('$title', '$content')";
        mysqli_query($conn, $query);
    }

    // 提交答案
    if (isset($_POST['answer'])) {
        $question_id = $_POST['question_id'];
        $content = $_POST['content'];

        $query = "INSERT INTO answers (question_id, content) VALUES ($question_id, '$content')";
        mysqli_query($conn, $query);
    }

    // 重定向到问题详情页面
    header("Location: question.php?id=$question_id");
    exit();
}
?>

이제 index.php 페이지에 접속하여 질문 목록을 표시할 수 있고, Question.php 페이지에 접속하여 질문 세부정보 및 답변을 표시할 수 있습니다. 그리고 질문과 답변이 포함된 양식을 제출하면 데이터가 데이터베이스에 저장됩니다.

요약

지식 Q&A 사이트에서 질문 토론과 답변 편집 기능을 PHP를 통해 구현하는 것은 어렵지 않습니다. 질문과 답변 정보를 저장하는 데이터베이스를 만들고, 데이터를 표시하고 제출하는 PHP 코드만 작성하면 됩니다. 이 문서에서는 필요에 따라 확장하고 개선할 수 있는 간단한 예를 제공합니다. 강력한 지식 질의응답 웹사이트 구현에 성공하시길 바랍니다!

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.