PHP およびミニ プログラムのオンライン Q&A およびナレッジ ベースの実装
モバイル インターネットの発展に伴い、ミニ プログラムはモバイル アプリケーションの非常に一般的な形式になりました。質問と回答およびナレッジ ベースは、多くの Web サイトやアプリケーションに共通の機能であり、ユーザーが必要な情報をすばやく見つけて問題を解決できるようにします。この記事では、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 (質問と回答の一意の ID)、question (質問) の 3 つのフィールドが含まれています。 、答え(答え)。
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 中国語 Web サイトの他の関連記事を参照してください。