php点赞功能怎么做
时间 : 2023-04-25 12:03:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
实现点赞功能的关键是在点击点赞按钮时,将用户的点赞信息保存到数据库中,同时更新相应的点赞数显示。下面给出一个简单的实现方式。
首先,需要创建一个点赞表,记录用户点赞信息。表结构如下:
CREATE TABLE IF NOT EXISTS `likes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`blog_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中,`user_id`表示用户的ID,`blog_id`表示博客的ID。
要在页面中显示点赞按钮和点赞数,可以使用如下的HTML和PHP代码:
```HTML+PHP
<?php
// 获取博客ID和点赞数
$blog_id = 1; // 假设博客ID为1
$like_count = get_like_count($blog_id);
$is_liked = is_liked($blog_id);
?>
<div class="like-button">
<a href="#" class="btn <?php echo $is_liked ? 'liked' : ''; ?>" id="like-btn" data-blog-id="<?php echo $blog_id; ?>">
<i class="fa fa-thumbs-up"></i> 点赞
</a>
</div>
<div class="like-count">
<i class="fa fa-thumbs-up"></i> <?php echo $like_count; ?> 人点赞
</div>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(function() {
// 点击点赞按钮时发送AJAX请求
$('#like-btn').click(function(e) {
e.preventDefault();
var blog_id = $(this).data('blog-id');
$.post('like.php', {'blog_id': blog_id}, function(data) {
if (data === 'ok') {
$('.like-button a').toggleClass('liked');
$('.like-count').load('like-count.php', {'blog_id': blog_id});
}
});
});
});
</script>
上面的代码中,`get_like_count()`和`is_liked()`是两个自定义函数,分别用于获取点赞数和判断用户是否已经点赞。`like.php`是用于处理点赞请求的PHP脚本,`like-count.php`用于返回新的点赞数。
`like.php`的代码如下:
```PHP
<?php
$blog_id = $_POST['blog_id'];
$user_id = 1; // 假设用户ID为1
// 判断用户是否已经点赞
if (!is_liked($blog_id, $user_id)) {
// 添加点赞记录到数据库
$query = "INSERT INTO likes (user_id, blog_id) VALUES ($user_id, $blog_id)";
$result = mysqli_query($conn, $query) or die(mysqli_error($conn));
// 更新博客的点赞数
$query = "UPDATE blogs SET like_count = like_count + 1 WHERE id = $blog_id";
$result = mysqli_query($conn, $query) or die(mysqli_error($conn));
echo 'ok';
}
else {
echo 'error';
}
?>
`like-count.php`的代码如下:
```PHP
<?php
$blog_id = $_POST['blog_id'];
$query = "SELECT COUNT(*) AS count FROM likes WHERE blog_id = $blog_id";
$result = mysqli_query($conn, $query) or die(mysqli_error($conn));
$row = mysqli_fetch_assoc($result);
echo $row['count'] . ' 人点赞';
?>
需要注意的是,上述代码中的数据库连接和一些数据库操作代码(如`mysqli_query()`等)需要根据实际情况进行修改。
PHP点赞功能可以通过以下几个步骤来实现:
1. 创建数据库
首先,你需要创建一个数据库,用于存储点赞信息。可以使用MySQL或MariaDB等关系型数据库。
2. 创建点赞数据表
在创建数据库之后,你需要创建一个点赞数据表,该表至少包含以下字段:
- 点赞ID:唯一标识符
- 内容ID:被点赞的内容ID
- 用户ID:点赞用户的ID
- 时间戳:点赞时间的时间戳
可以根据需求添加其他字段,例如点赞IP等。
3. 编写PHP代码
接下来,你需要编写PHP代码来实现点赞功能。首先,你需要编写一个获取点赞数量的函数:
function get_likes_count($content_id) {
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database_name");
if (!$conn) {
die("连接错误: " . mysqli_connect_error());
}
// 查询点赞数量
$sql = "SELECT COUNT(*) AS count FROM likes WHERE content_id = '$content_id'";
$result = mysqli_query($conn, $sql);
$count = mysqli_fetch_assoc($result)["count"];
// 关闭数据库连接
mysqli_close($conn);
return $count;
}
这个函数接受一个内容ID作为参数,返回这个内容的点赞数量。
接下来,你需要编写一个判断用户是否点赞的函数:
function is_user_liked($content_id, $user_id) {
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database_name");
if (!$conn) {
die("连接错误: " . mysqli_connect_error());
}
// 查询点赞记录
$sql = "SELECT * FROM likes WHERE content_id = '$content_id' AND user_id = '$user_id'";
$result = mysqli_query($conn, $sql);
// 关闭数据库连接
mysqli_close($conn);
return mysqli_num_rows($result) > 0;
}
这个函数接受一个内容ID和一个用户ID作为参数,返回一个布尔值,表示用户是否点赞了这个内容。
接下来,你需要编写一个处理点赞的函数:
function handle_like($content_id, $user_id) {
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database_name");
if (!$conn) {
die("连接错误: " . mysqli_connect_error());
}
// 判断用户是否已经点赞
if (is_user_liked($content_id, $user_id)) {
// 如果用户已经点赞,则取消点赞
$sql = "DELETE FROM likes WHERE content_id = '$content_id' AND user_id = '$user_id'";
} else {
// 如果用户没有点赞,则添加点赞记录
$sql = "INSERT INTO likes (content_id, user_id, timestamp) VALUES ('$content_id', '$user_id', UNIX_TIMESTAMP())";
}
// 执行SQL语句
mysqli_query($conn, $sql);
// 关闭数据库连接
mysqli_close($conn);
}
这个函数接受一个内容ID和一个用户ID作为参数,根据用户是否已经点赞来执行添加或删除点赞记录的操作。
4. 在页面中使用点赞功能
最后,你需要在页面中使用点赞功能。你可以使用一个链接或按钮来触发点赞操作,并在页面中显示点赞数量。例如:
<?php
// 处理点赞操作
if (isset($_GET["like"])) {
handle_like($_GET["content_id"], $_GET["user_id"]);
}
// 显示点赞数量
$likes_count = get_likes_count($_GET["content_id"]);
echo "点赞数量:$likes_count";
?>
<!-- 显示点赞链接或按钮 -->
<a href="?like&content_id=<?php echo $_GET["content_id"]; ?>&user_id=<?php echo $_GET["user_id"]; ?>">点赞</a>
当用户点击这个链接或按钮时,会触发点赞操作,并重新加载页面以更新点赞数量的显示。
上一篇
php观察者模式怎么设置
下一篇
php数据库关联怎么设置
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章