首頁  >  文章  >  後端開發  >  PHP與小程式的線上問答與知識庫實現

PHP與小程式的線上問答與知識庫實現

WBOY
WBOY原創
2023-07-04 08:05:431490瀏覽

PHP與小程式的線上問答與知識庫實現

隨著行動網路的發展,小程式成為了一種非常受歡迎的手機應用程式形式。而問答與知識庫是許多網站和應用程式中常見的功能,它們能夠讓使用者快速找到所需的資訊並解決問題。本文將介紹如何使用PHP和小程式來實現線上問答與知識庫功能。

一、準備工作
在開始之前,我們需要準備以下工作:

  1. #安裝PHP環境和MySQL資料庫;
  2. 建立一個存放問答數據的資料庫表;
  3. 使用小程式開發工具建立一個小程式專案。

二、建立資料庫表
我們需要建立一個資料庫表來存放問題和答案的資料。在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(問題和答案的唯一識別),question(問題) ,answer(答案)。

三、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環境的網站根目錄下。

四、小程式前端程式碼

  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();
        }
      }
    })
  }
})

五、測試運行

  1. 使用小程式開發工具預覽小程序,可以看到一個簡單的問答列表介面;
  2. 輸入問題和答案,點擊"新增問題"按鈕,問題將會被加入資料庫;
  3. 點擊問題右側的"刪除"按鈕,問題將會被從資料庫中刪除。

透過上述步驟,我們成功實現了一個簡單的線上問答與知識庫功能,使用者在小程式中可以方便地瀏覽和新增問題。當然,這只是一個基礎的實現,你可以根據自己的需求進行擴展和優化。希望本文能對PHP和小程式開發有所幫助!

以上是PHP與小程式的線上問答與知識庫實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn