在PHP中,可以通过以下步骤实现点赞功能:
以下是一个简单的示例代码:
CREATE TABLE likes (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
content_id INT
);
<!-- HTML部分 -->
<button id="likeButton" onclick="likeContent(1)">点赞</button>
<span id="likeCount">0</span>
<!-- JavaScript部分 -->
<script>
function likeContent(contentId) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
if (response.liked) {
document.getElementById('likeButton').innerHTML = '取消点赞';
} else {
document.getElementById('likeButton').innerHTML = '点赞';
}
document.getElementById('likeCount').innerHTML = response.likeCount;
} else {
console.error('请求失败');
}
}
};
xhr.open('POST', 'like.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('contentId=' + encodeURIComponent(contentId));
}
</script>
<?php
// 连接数据库
$servername = 'localhost';
$username = 'username';
$password = 'password';
$dbname = 'database';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die('数据库连接失败: ' . $conn->connect_error);
}
// 获取请求参数
$contentId = $_POST['contentId'];
$userId = 1; // 假设当前用户ID为1
// 检查用户是否已经点赞过该内容
$sql = "SELECT * FROM likes WHERE user_id = $userId AND content_id = $contentId";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 用户已经点赞过该内容,取消点赞
$sql = "DELETE FROM likes WHERE user_id = $userId AND content_id = $contentId";
$conn->query($sql);
$liked = false;
} else {
// 用户没有点赞过该内容,进行点赞
$sql = "INSERT INTO likes (user_id, content_id) VALUES ($userId, $contentId)";
$conn->query($sql);
$liked = true;
}
// 查询点赞数量
$sql = "SELECT COUNT(*) AS likeCount FROM likes WHERE content_id = $contentId";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$likeCount = $row['likeCount'];
// 返回结果
$response = [
'liked' => $liked,
'likeCount' => $likeCount
];
echo json_encode($response);
// 关闭数据库连接
$conn->close();
?>
以上代码仅为示例,实际项目中可能需要根据具体需求进行修改和完善。
下一篇:php中重写方法有什么规则
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站