在PHP中实现点赞功能,通常需要以下几个步骤:
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)
);
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
函数并传递相应的参数。<button onclick="likeContent(<?php echo $content_id; ?>, <?php echo $user_id; ?>)">点赞</button>
这样,当用户点击点赞按钮时,PHP代码会处理点赞逻辑,包括检查用户是否已经点过赞、在数据库中插入新的点赞记录以及更新内容的点赞计数。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:php搜索功能实现的方法是什么