PHP melaksanakan pengurusan teg dan fungsi pengesyoran dalam tapak web soal jawab pengetahuan
Dalam tapak web soal jawab pengetahuan, pengurusan teg ialah fungsi yang sangat penting, yang boleh membantu pengguna mengelas dan mendapatkan soalan dengan lebih baik. Pada masa yang sama, fungsi pengesyoran boleh mengesyorkan soalan yang berkaitan berdasarkan minat pengguna dan gelagat sejarah untuk meningkatkan pengalaman pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk mencapai kedua-dua fungsi ini.
Pelaksanaan fungsi pengurusan tag:
Pertama, kita perlu mencipta jadual tag (tag) dan jadual soalan (soalan) untuk menyimpan maklumat tag dan soalan. Jadual teg mengandungi sekurang-kurangnya dua medan: id dan nama, dan jadual soalan termasuk sekurang-kurangnya tiga medan: id, tajuk dan kandungan.
CREATE TABLE `tag` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `question` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(100) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`id`) );
Pengguna boleh memilih tag yang sepadan apabila bertanya soalan Apabila pengguna mengklik butang hantar, kami perlu memasukkan maklumat tag dan soalan ke dalam jadual tag dan jadual soalan.
// 获取用户输入的标签和问题信息 $tags = $_POST['tags']; $title = $_POST['title']; $content = $_POST['content']; // 插入问题信息 $query = "INSERT INTO question (title, content) VALUES ('$title', '$content')"; mysql_query($query); // 插入标签信息 $questionId = mysql_insert_id(); foreach ($tags as $tag) { $query = "INSERT INTO tag (name, question_id) VALUES ('$tag', '$questionId')"; mysql_query($query); }
Pengguna boleh mencari soalan berkaitan berdasarkan tag. Kita boleh menggunakan operasi SQL JOIN untuk mengaitkan jadual label dan jadual soalan, dan kemudian menapis berdasarkan nama label.
$tag = $_GET['tag']; $query = "SELECT q.* FROM question q INNER JOIN tag t ON q.id = t.question_id WHERE t.name = '$tag'"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { echo $row['title'], "<br/>"; }
Pelaksanaan fungsi pengesyoran:
Fungsi pengesyoran perlu mendapatkan teg berdasarkan gelagat sejarah pengguna dan membuat pengesyoran dengan menganalisis teg yang kerap digunakan oleh pengguna. Kami boleh mendapatkan teg dengan menanyakan soalan yang ditanya oleh pengguna.
$userId = $_SESSION['user_id']; $query = "SELECT t.name FROM tag t INNER JOIN question q ON t.question_id = q.id WHERE q.user_id = '$userId'"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { echo $row['name'], "<br/>"; }
Berdasarkan teg yang kerap muncul dalam sejarah pengguna, kami boleh mengesyorkan soalan yang sepadan. Kita boleh menggunakan operasi IN SQL untuk mendapatkan soalan berkaitan berdasarkan nama tag.
$tags = implode(",", $userTags); $query = "SELECT * FROM question WHERE id NOT IN (SELECT t.question_id FROM tag t WHERE t.name IN ($tags)) LIMIT 5"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { echo $row['title'], "<br/>"; }
Di atas ialah cara menggunakan PHP untuk melaksanakan pengurusan tag dan fungsi pengesyoran dalam tapak web soal jawab pengetahuan. Melalui pengurusan teg, kami boleh mengklasifikasikan dan mendapatkan semula soalan dengan lebih baik melalui fungsi pengesyoran, kami boleh menyediakan soalan yang berkaitan berdasarkan minat dan gelagat sejarah pengguna untuk meningkatkan pengalaman pengguna. Sudah tentu, dalam aplikasi praktikal, pengembangan dan pengoptimuman selanjutnya boleh dijalankan mengikut keperluan khusus.
Atas ialah kandungan terperinci PHP melaksanakan pengurusan tag dan fungsi pengesyoran dalam tapak web soal jawab pengetahuan.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!