Home > Article > Backend Development > Use PHP to develop question channels and topic features in the knowledge Q&A website.
Use PHP to develop question channels and special features in the knowledge Q&A website
Nowadays, the development of the Internet has made it easier for people to obtain knowledge. The knowledge question and answer website not only provides users with a platform for communication and sharing, but also promotes the dissemination and learning of knowledge. Based on this, a knowledge Q&A website is developed, including question channels and special topics, which can help users better organize and acquire knowledge.
The following uses PHP as the development language to implement the question channel and topic functions in a simple knowledge Q&A website.
First, we need to create a database to store user questions and topic information. Create a database named "qa_db" and create two tables in it: questions and topics.
The structure of the questions table is as follows:
CREATE TABLE questions ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, content TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
The structure of the topics table is as follows:
CREATE TABLE topics ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
Next, we can use PHP to write code that interacts with the database, in the question channel Display a list of questions.
<?php // 配置数据库连接 $host = 'localhost'; $db = 'qa_db'; $user = 'root'; $password = ''; // 连接数据库 $conn = new PDO("mysql:host=$host;dbname=$db", $user, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 查询问题列表 $query = "SELECT * FROM questions ORDER BY created_at DESC"; $stmt = $conn->prepare($query); $stmt->execute(); $questions = $stmt->fetchAll(PDO::FETCH_ASSOC); // 显示问题列表 foreach ($questions as $question) { echo "<h2>{$question['title']}</h2>"; echo "<p>{$question['content']}</p>"; echo "<p>发布时间:{$question['created_at']}</p>"; } ?>
The above code will query the list of questions from the database and display the title, content and release time of the questions in sequence.
Next, let’s implement the topic function, which can create, edit and delete topics.
<?php // 创建专题 if (isset($_POST['create_topic'])) { $name = $_POST['topic_name']; // 插入专题到数据库 $query = "INSERT INTO topics (name) VALUES (:name)"; $stmt = $conn->prepare($query); $stmt->bindParam(':name', $name); $stmt->execute(); } // 查询专题列表 $query = "SELECT * FROM topics ORDER BY created_at DESC"; $stmt = $conn->prepare($query); $stmt->execute(); $topics = $stmt->fetchAll(PDO::FETCH_ASSOC); // 显示专题列表 foreach ($topics as $topic) { echo "<h3>{$topic['name']}</h3>"; echo "<a href='edit_topic.php?id={$topic['id']}'>编辑</a> "; echo "<a href='delete_topic.php?id={$topic['id']}' onclick='return confirm("确定要删除该专题吗?")'>删除</a>"; } // 创建专题表单 echo "<form method='post'>"; echo "<input type='text' name='topic_name'>"; echo "<input type='submit' name='create_topic' value='创建专题'>"; echo "</form>"; ?>
The above code includes the function of creating topics. Users can enter the topic name in the form and click the "Create Topic" button to insert the topic name into the database. At the same time, created topics are also listed, with links to edit and delete.
Through the above code examples, we can implement the question channel and topic functions in a simple knowledge Q&A website. Of course, this is just a basic implementation, and you can make more extensions and optimizations according to your own needs. I hope this article will be helpful to you in developing a knowledge Q&A website!
The above is the detailed content of Use PHP to develop question channels and topic features in the knowledge Q&A website.. For more information, please follow other related articles on the PHP Chinese website!