


PHP implements the voting and adoption functions of question answers in the knowledge question and answer website.
PHP implements the voting and adoption functions of question answers in the knowledge question and answer website.
With the development of the Internet, knowledge question and answer websites have gained more and more users, and have become an important way for people to obtain knowledge and solve problems. In these question and answer websites, the voting and adoption functions of question answers are very important. They can help users better choose the best answers, improve the credibility of the questions and the reputation of the answerers.
This article will introduce how to use PHP to implement the voting and adoption functions of question answers, and provide corresponding code examples.
First, we need a database to store question and answer information. Suppose there are two tables in our database, one is questions used to store question information, and the other is answers used to store answer information. The structure of the questions table is as follows:
CREATE TABLE questions ( id INT(11) PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255) NOT NULL, content TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
The structure of the answers table is as follows:
CREATE TABLE answers ( id INT(11) PRIMARY KEY AUTO_INCREMENT, question_id INT(11) NOT NULL, content TEXT NOT NULL, is_accepted TINYINT(1) DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
Next, we need to implement the voting function for question answers. Users can like or dislike the answers under the questions to express their approval or disapproval of the answers. We can add two new fields to the answers table, upvote and downvote, to store the number of likes and dislikes for the answer.
ALTER TABLE answers ADD COLUMN upvote INT(11) DEFAULT 0; ALTER TABLE answers ADD COLUMN downvote INT(11) DEFAULT 0;
In the question answer list, we can add a voting button for each answer. When the user clicks the button, we can send the type of vote (like or dislike) and answer to the server through an Ajax request. ID, and then update the number of likes or dislikes of the corresponding answer in the database. The following is a simple code example:
<!-- question.php --> <div> <h3>问题标题</h3> <p>问题内容</p> </div> <div> <h4>答案列表</h4> <?php // 从数据库中获取问题的答案列表 $answers = get_answers($question_id); foreach ($answers as $answer) { echo '<div>'; echo '<p>' . $answer['content'] . '</p>'; echo '<p>点赞数:' . $answer['upvote'] . '</p>'; echo '<p>点踩数:' . $answer['downvote'] . '</p>'; echo '<button onclick="vote(' . $answer['id'] . ', 'upvote')">点赞</button>'; echo '<button onclick="vote(' . $answer['id'] . ', 'downvote')">点踩</button>'; echo '</div>'; } ?> </div> <script> function vote(answerId, type) { // 发起Ajax请求 $.ajax({ url: 'vote.php', method: 'POST', data: { answer_id: answerId, type: type }, success: function(response) { // 更新点赞或点踩数 if (type === 'upvote') { $('#' + answerId + ' .upvote').text(parseInt($('#' + answerId + ' .upvote').text()) + 1); } else if (type === 'downvote') { $('#' + answerId + ' .downvote').text(parseInt($('#' + answerId + ' .downvote').text()) + 1); } } }); } </script>
In the vote.php file, we can update the number of likes or dislikes for the corresponding answer in the database based on the vote type and answer ID sent by the user. The following is a simple code example:
<?php // vote.php // 获取答案ID和投票类型 $answerId = $_POST['answer_id']; $type = $_POST['type']; // 更新答案的点赞或点踩数 if ($type === 'upvote') { $sql = "UPDATE answers SET upvote = upvote + 1 WHERE id = $answerId"; } else if ($type === 'downvote') { $sql = "UPDATE answers SET downvote = downvote + 1 WHERE id = $answerId"; } // 执行更新操作 // ... // 返回响应 // ... ?>
The above is the code example of the voting function for question answers. Next, we will introduce how to implement the acceptance function of question answers.
The question answer adoption function means that the questioner can choose a best answer as the solution to the question and mark it as adopted. We can add a new field is_accepted in the answers table to indicate whether the answer is accepted.
ALTER TABLE answers ADD COLUMN is_accepted TINYINT(1) DEFAULT 0;
In the question answer list, we can add an adopt button for each answer. When the questioner clicks the button, we can send the answer ID to the server through an Ajax request, and then update the corresponding answer in the database. is_accepted field. The following is a simple code example:
<!-- question.php --> <div> <h3>问题标题</h3> <p>问题内容</p> </div> <div> <h4>答案列表</h4> <?php // 从数据库中获取问题的答案列表 $answers = get_answers($question_id); foreach ($answers as $answer) { echo '<div>'; echo '<p>' . $answer['content'] . '</p>'; echo '<p>点赞数:' . $answer['upvote'] . '</p>'; echo '<p>点踩数:' . $answer['downvote'] . '</p>'; echo '<button onclick="vote(' . $answer['id'] . ', 'upvote')">点赞</button>'; echo '<button onclick="vote(' . $answer['id'] . ', 'downvote')">点踩</button>'; if ($question['user_id'] === $_SESSION['user_id']) { // 如果是提问者 echo '<button onclick="accept(' . $answer['id'] . ')">采纳</button>'; } echo '</div>'; } ?> </div> <script> function accept(answerId) { // 发起Ajax请求 $.ajax({ url: 'accept.php', method: 'POST', data: { answer_id: answerId }, success: function(response) { // 更新答案的采纳状态 $('#' + answerId).addClass('accepted'); } }); } </script>
In the accept.php file, we can update the is_accepted field of the corresponding answer in the database based on the answer ID sent by the user. The following is a simple code example:
<?php // accept.php // 获取答案ID $answerId = $_POST['answer_id']; // 更新答案的采纳状态 $sql = "UPDATE answers SET is_accepted = 1 WHERE id = $answerId"; // 执行更新操作 // ... // 返回响应 // ... ?>
The above is the code example of the acceptance function of the answer to the question. Through these code examples, we can implement the voting and adoption functions of question answers in the knowledge question and answer website, improving user experience and information quality. Of course, the above is just a simple example, and more details and security need to be considered in actual applications. Hope this article is helpful to you!
The above is the detailed content of PHP implements the voting and adoption functions of question answers in the knowledge question and answer website.. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
