在PHP中实现点赞功能,通常需要以下几个步骤:
- 创建一个数据库表来存储点赞信息,包括点赞内容(如文章、评论等)的ID、用户ID和点赞时间等。
CREATE TABLE likes ( id INT AUTO_INCREMENT PRIMARY KEY, content_id INT NOT NULL, user_id INT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (content_id) REFERENCES contents(id), FOREIGN KEY (user_id) REFERENCES users(id) );
- 在PHP代码中创建一个函数来处理点赞逻辑。这个函数需要接收内容ID和用户ID作为参数,并在数据库中插入一条新的点赞记录。同时,更新内容的点赞计数。
function likeContent($content_id, $user_id) {
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 检查用户是否已经点过赞
$sql = "SELECT COUNT(*) as count FROM likes WHERE content_id = ? AND user_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $content_id, $user_id);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
if ($row['count'] > 0) {
echo "用户已经点过赞";
} else {
// 插入新的点赞记录
$sql = "INSERT INTO likes (content_id, user_id) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $content_id, $user_id);
if ($stmt->execute()) {
// 更新内容的点赞计数
$sql = "UPDATE contents SET likes_count = likes_count + 1 WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $content_id);
$stmt->execute();
echo "点赞成功";
} else {
echo "点赞失败: " . $conn->error;
}
}
// 关闭数据库连接
$stmt->close();
$conn->close();
}
- 在前端页面中创建一个点赞按钮,当用户点击这个按钮时,调用
likeContent
函数并传递相应的参数。
这样,当用户点击点赞按钮时,PHP代码会处理点赞逻辑,包括检查用户是否已经点过赞、在数据库中插入新的点赞记录以及更新内容的点赞计数。