>  기사  >  백엔드 개발  >  PHP 및 미니 프로그램의 온라인 Q&A 및 지식 기반 구현

PHP 및 미니 프로그램의 온라인 Q&A 및 지식 기반 구현

WBOY
WBOY원래의
2023-07-04 08:05:431511검색

PHP 및 미니 프로그램의 온라인 Q&A 및 지식 기반 구현

모바일 인터넷의 발전과 함께 미니 프로그램은 매우 인기 있는 모바일 애플리케이션 형태가 되었습니다. 질문과 답변, 지식 기반은 많은 웹사이트와 애플리케이션에서 흔히 사용되는 기능입니다. 이를 통해 사용자는 필요한 정보를 빠르게 찾고 문제를 해결할 수 있습니다. 이 기사에서는 PHP와 작은 프로그램을 사용하여 온라인 Q&A 및 지식 기반 기능을 구현하는 방법을 소개합니다.

1. 준비
시작하기 전에 다음 작업을 준비해야 합니다.

  1. PHP 환경 및 MySQL 데이터베이스 설치
  2. Q&A 데이터를 저장할 데이터베이스 테이블 만들기
  3. 작은 프로그램을 사용하여 작은 프로그램 프로젝트 만들기 개발 도구 .

2. 데이터베이스 테이블 만들기
질문과 답변의 데이터를 저장할 데이터베이스 테이블을 만들어야 합니다. MySQL 데이터베이스에서 다음 SQL 문을 실행하여 "qa"라는 데이터 테이블을 생성할 수 있습니다.

CREATE TABLE `qa` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `question` varchar(255) NOT NULL,
  `answer` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

이 테이블에는 id(질문과 답변의 고유 식별), 질문(질문), 답변(답변)의 세 가지 필드가 포함되어 있습니다. ).

3. PHP 백엔드 코드

  1. "qa.php"라는 PHP 파일을 만들고 다음 코드를 작성합니다.
<?php
// 连接数据库
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "your_database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// 处理请求接口
$action = $_GET['action'];
if ($action == 'getQuestions') {
    // 获取问题列表
    $sql = "SELECT * FROM `qa`";
    $result = $conn->query($sql);
    $questions = array();
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $questions[] = array(
                'id' => $row['id'],
                'question' => $row['question'],
                'answer' => $row['answer']
            );
        }
    }
    echo json_encode($questions);
} else if ($action == 'addQuestion') {
    // 添加问题
    $question = $_POST['question'];
    $answer = $_POST['answer'];
    $sql = "INSERT INTO `qa` (`question`, `answer`) VALUES ('$question', '$answer')";
    if ($conn->query($sql) === TRUE) {
        echo 'success';
    } else {
        echo 'error';
    }
} else if ($action == 'deleteQuestion') {
    // 删除问题
    $id = $_POST['id'];
    $sql = "DELETE FROM `qa` WHERE `id` = $id";
    if ($conn->query($sql) === TRUE) {
        echo 'success';
    } else {
        echo 'error';
    }
}

$conn->close();
?>
  1. 위에 작성된 "qa.php" 파일을 웹 사이트 루트 디렉터리의 PHP 환경에 넣습니다. .

4. 미니 프로그램 프런트 엔드 코드

  1. 미니 프로그램 개발 도구를 열고 프로젝트 디렉터리에서 "app.json" 파일을 찾아 다음 코드를 추가합니다("your_website_url"을 웹 사이트 주소로 대체).
"request": {
    "domain": "your_website_url",
    "tlsVersion": "1.2",
    "timeout": 5000,
    "method": "GET"
}
  1. "index"라는 페이지를 만들고 다음 코드를 작성합니다.
<view class="container">
    <view class="title">在线问答与知识库</view>
    <view class="form">
        <input placeholder="请输入问题" bindinput="inputQuestion" />
        <input placeholder="请输入答案" bindinput="inputAnswer" />
        <button bindtap="addQuestion">添加问题</button>
    </view>
    <view class="list">
        <view wx:for="{{questionList}}" wx:key="id" class="item">
            <view class="question">{{item.question}}</view>
            <view class="answer">{{item.answer}}</view>
            <button bindtap="deleteQuestion">删除</button>
        </view>
    </view>
</view>
  1. "index.js" 파일에 다음 코드를 작성합니다.
Page({
  data: {
    questionList: [],
    question: '',
    answer: ''
  },

  onLoad: function () {
    this.getQuestionList();
  },

  getQuestionList: function () {
    wx.request({
      url: 'your_website_url/qa.php?action=getQuestions',
      success: (res) => {
        this.setData({
          questionList: res.data
        })
      }
    })
  },

  inputQuestion: function (e) {
    this.setData({
      question: e.detail.value
    })
  },

  inputAnswer: function (e) {
    this.setData({
      answer: e.detail.value
    })
  },

  addQuestion: function () {
    wx.request({
      url: 'your_website_url/qa.php?action=addQuestion',
      method: 'POST',
      data: {
        question: this.data.question,
        answer: this.data.answer
      },
      success: (res) => {
        if (res.data == 'success') {
          this.getQuestionList();
          this.setData({
            question: '',
            answer: ''
          })
        }
      }
    })
  },

  deleteQuestion: function (e) {
    var id = e.currentTarget.dataset.id;
    wx.request({
      url: 'your_website_url/qa.php?action=deleteQuestion',
      method: 'POST',
      data: {
        id: id
      },
      success: (res) => {
        if (res.data == 'success') {
          this.getQuestionList();
        }
      }
    })
  }
})

5. 테스트 실행

  1. 애플릿 사용 애플릿 프로그램을 미리 볼 수 있는 개발 도구에서 간단한 질문과 답변 목록 인터페이스를 볼 수 있습니다.
  2. 질문과 답변을 입력하고 "질문 추가" 버튼을 클릭하면 질문이 데이터베이스에 추가됩니다.
  3. "삭제"를 클릭하세요. " 버튼을 질문 오른쪽에 클릭하면 해당 질문이 데이터베이스에서 삭제됩니다.

위 단계를 통해 간단한 온라인 Q&A 및 지식 기반 기능을 성공적으로 구현했습니다. 사용자는 미니 프로그램에서 질문을 쉽게 찾아보고 추가할 수 있습니다. 물론 이것은 단지 기본적인 구현일 뿐이며 필요에 따라 확장하고 최적화할 수 있습니다. 이 글이 PHP와 소규모 프로그램 개발에 도움이 되기를 바랍니다!

위 내용은 PHP 및 미니 프로그램의 온라인 Q&A 및 지식 기반 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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