Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan PHP untuk membangunkan klasifikasi soalan dan fungsi pengesyoran tag dalam tapak web soalan dan jawapan pengetahuan.

Gunakan PHP untuk membangunkan klasifikasi soalan dan fungsi pengesyoran tag dalam tapak web soalan dan jawapan pengetahuan.

WBOY
WBOYasal
2023-07-03 09:43:431169semak imbas

Gunakan PHP untuk membangunkan klasifikasi soalan dan fungsi pengesyoran tag dalam laman web Soal Jawab pengetahuan

Dalam era perkongsian pengetahuan, pelbagai jenis laman web Soal Jawab pengetahuan telah muncul. Untuk membantu pengguna mencari soalan yang mereka minati dengan lebih pantas, klasifikasi soalan dan fungsi pengesyoran teg adalah amat diperlukan.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan klasifikasi soalan dan fungsi pengesyoran teg dalam tapak web soal jawab pengetahuan. Kami akan menggunakan tapak web Soal Jawab rekaan sebagai contoh untuk menunjukkan cara melaksanakan ciri ini.

Pertama, kita perlu mencipta pangkalan data untuk menyimpan maklumat tentang soalan dan tag. Kami boleh mencipta jadual data yang sepadan menggunakan pernyataan SQL berikut:

CREATE TABLE `questions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `question` varchar(255) NOT NULL,
  `category_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `tags` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `question_tag` (
  `question_id` int(11) NOT NULL,
  `tag_id` int(11) NOT NULL,
  PRIMARY KEY (`question_id`, `tag_id`)
);

Dalam aplikasi PHP kami, kami perlu menyambung ke pangkalan data terlebih dahulu. Ini boleh dicapai menggunakan kod berikut:

$host = 'localhost';
$db = 'knowledge_qa';
$user = 'username';
$password = 'password';

$conn = new PDO("mysql:host=$host;dbname=$db", $user, $password);

Seterusnya, kita boleh melaksanakan fungsi klasifikasi masalah. Katakan kita mempunyai borang yang mengandungi soalan dan maklumat klasifikasi Apabila pengguna menyerahkan soalan, kita boleh memasukkan soalan dan maklumat klasifikasi ke dalam pangkalan data:

function createQuestion($question, $category_id) {
  global $conn;

  $sql = "INSERT INTO questions (question, category_id) VALUES (:question, :category_id)";
  $stmt = $conn->prepare($sql);
  $stmt->bindParam(':question', $question);
  $stmt->bindParam(':category_id', $category_id);
  $stmt->execute();

  return $conn->lastInsertId();
}

Seterusnya, kita boleh melaksanakan fungsi pengesyoran tag. Katakan kita mempunyai borang yang mengandungi maklumat label Pengguna boleh memilih label sedia ada atau memasukkan yang baharu. Kami boleh memasukkan maklumat teg ke dalam pangkalan data dan mewujudkan perkaitan dengan soalan:

function createTag($name) {
  global $conn;

  $sql = "INSERT INTO tags (name) VALUES (:name)";
  $stmt = $conn->prepare($sql);
  $stmt->bindParam(':name', $name);
  $stmt->execute();

  return $conn->lastInsertId();
}

function attachTagToQuestion($question_id, $tag_id) {
  global $conn;

  $sql = "INSERT INTO question_tag (question_id, tag_id) VALUES (:question_id, :tag_id)";
  $stmt = $conn->prepare($sql);
  $stmt->bindParam(':question_id', $question_id);
  $stmt->bindParam(':tag_id', $tag_id);
  $stmt->execute();
}

Di atas ialah contoh kod asas tentang cara menggunakan PHP untuk melaksanakan klasifikasi soalan dan fungsi pengesyoran teg dalam tapak web soal jawab pengetahuan. Apabila pengguna menyerahkan soalan, kami boleh memanggil fungsi di atas untuk membuat perkaitan antara soalan dan teg yang berkaitan.

Apabila pengguna melayari laman web, kami boleh menapis dan mengesyorkan berdasarkan klasifikasi dan maklumat tag soalan. Kita boleh menggunakan kod berikut untuk mendapatkan senarai soalan di bawah kategori tertentu:

function getQuestionsByCategory($category_id) {
  global $conn;

  $sql = "SELECT * FROM questions WHERE category_id = :category_id";
  $stmt = $conn->prepare($sql);
  $stmt->bindParam(':category_id', $category_id);
  $stmt->execute();

  return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

Begitu juga, kita juga boleh menggunakan kaedah yang sama untuk mendapatkan senarai soalan di bawah label tertentu:

function getQuestionsByTag($tag_id) {
  global $conn;

  $sql = "SELECT q.* FROM questions q INNER JOIN question_tag qt ON q.id = qt.question_id WHERE qt.tag_id = :tag_id";
  $stmt = $conn->prepare($sql);
  $stmt->bindParam(':tag_id', $tag_id);
  $stmt->execute();

  return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

Melalui fungsi di atas, kita boleh laksanakan soalan dalam soalan pengetahuan dan jawapan laman web Kategori dan fungsi pengesyoran tag. Dengan cara ini, pengguna lebih mudah mencari soalan yang mereka minati, seterusnya meningkatkan keberkesanan dan kepuasan pembelajaran mereka.

Dalam pembangunan sebenar, kami boleh menambah baik lagi fungsi ini, seperti pengesyoran automatik teg berkaitan soalan dan paparan teg popular. Ini boleh dikembangkan dan dioptimumkan berdasarkan keperluan khusus.

Saya harap artikel ini berguna untuk menggunakan PHP untuk membangunkan klasifikasi soalan dan fungsi pengesyoran tag dalam tapak web Soal Jawab pengetahuan. Mari mula membina platform Soal Jawab yang cekap dan pintar!

Atas ialah kandungan terperinci Gunakan PHP untuk membangunkan klasifikasi soalan dan fungsi pengesyoran tag dalam tapak web soalan dan jawapan pengetahuan.. 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