Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Soal Jawab dalam talian dan pelaksanaan asas pengetahuan PHP dan program mini

Soal Jawab dalam talian dan pelaksanaan asas pengetahuan PHP dan program mini

WBOY
WBOYasal
2023-07-04 08:05:431492semak imbas

Soal Jawab dalam talian dan pelaksanaan pangkalan pengetahuan PHP dan program mini

Dengan pembangunan Internet mudah alih, program mini telah menjadi satu bentuk aplikasi mudah alih yang sangat popular. Soalan dan jawapan serta pangkalan pengetahuan adalah ciri biasa dalam banyak tapak web dan aplikasi Mereka membolehkan pengguna mencari maklumat yang mereka perlukan dengan cepat dan menyelesaikan masalah. Artikel ini akan memperkenalkan cara menggunakan PHP dan program kecil untuk melaksanakan Soal Jawab dalam talian dan fungsi asas pengetahuan.

1. Persediaan
Sebelum kita mula, kita perlu menyediakan kerja berikut:

  1. Pasang persekitaran PHP dan pangkalan data MySQL
  2. Buat jadual pangkalan data untuk menyimpan data Soal Jawab
  3. Buat program kecil; alat pembangunan.

2. Buat jadual pangkalan data
Kita perlu buat jadual pangkalan data untuk menyimpan data soalan dan jawapan. Dalam pangkalan data MySQL, anda boleh melaksanakan pernyataan SQL berikut untuk mencipta jadual data bernama "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;

Jadual mengandungi tiga medan: id (pengenalan unik soalan dan jawapan), soalan (soalan), jawapan (jawapan) ).

3. Kod backend PHP

  1. Buat fail PHP bernama "qa.php" dan tulis kod berikut:
<?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. Letakkan fail "qa.php" yang ditulis di atas ke dalam persekitaran PHP anda dalam direktori akar tapak web .

4. Kod bahagian hadapan program mini

  1. Buka alat pembangunan program mini, cari fail "app.json" dalam direktori projek dan tambah kod berikut (gantikan "url_laman web anda" dengan alamat tapak web anda):
"request": {
    "domain": "your_website_url",
    "tlsVersion": "1.2",
    "timeout": 5000,
    "method": "GET"
}
  1. Buat halaman bernama "index" dan tulis kod berikut:
<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. Tulis kod berikut dalam fail "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. Test run

    applet alat pembangunan untuk pratonton program applet, anda boleh melihat antara muka senarai soalan dan jawapan yang mudah
  1. Masukkan soalan dan jawapan, klik butang "Tambah Soalan", soalan akan ditambah ke pangkalan data
  2. Klik butang "Padam " butang di sebelah kanan soalan, soalan akan dipadamkan daripada pangkalan data.
Melalui langkah di atas, kami telah berjaya melaksanakan Q&J dalam talian dan fungsi asas pengetahuan Pengguna boleh menyemak imbas dan menambah soalan dengan mudah dalam program mini. Sudah tentu, ini hanyalah pelaksanaan asas dan anda boleh mengembangkan dan mengoptimumkannya mengikut keperluan anda. Saya harap artikel ini boleh membantu PHP dan pembangunan program kecil!

Atas ialah kandungan terperinci Soal Jawab dalam talian dan pelaksanaan asas pengetahuan PHP dan program mini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn