PHP 및 미니 프로그램의 온라인 Q&A 및 지식 기반 구현
모바일 인터넷의 발전과 함께 미니 프로그램은 매우 인기 있는 모바일 애플리케이션 형태가 되었습니다. 질문과 답변, 지식 기반은 많은 웹사이트와 애플리케이션에서 흔히 사용되는 기능입니다. 이를 통해 사용자는 필요한 정보를 빠르게 찾고 문제를 해결할 수 있습니다. 이 기사에서는 PHP와 작은 프로그램을 사용하여 온라인 Q&A 및 지식 기반 기능을 구현하는 방법을 소개합니다.
1. 준비
시작하기 전에 다음 작업을 준비해야 합니다.
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 백엔드 코드
<?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(); ?>
4. 미니 프로그램 프런트 엔드 코드
"request": { "domain": "your_website_url", "tlsVersion": "1.2", "timeout": 5000, "method": "GET" }
<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>
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. 테스트 실행
위 단계를 통해 간단한 온라인 Q&A 및 지식 기반 기능을 성공적으로 구현했습니다. 사용자는 미니 프로그램에서 질문을 쉽게 찾아보고 추가할 수 있습니다. 물론 이것은 단지 기본적인 구현일 뿐이며 필요에 따라 확장하고 최적화할 수 있습니다. 이 글이 PHP와 소규모 프로그램 개발에 도움이 되기를 바랍니다!
위 내용은 PHP 및 미니 프로그램의 온라인 Q&A 및 지식 기반 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!