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>

当用户点击这个链接或按钮时,会触发点赞操作,并重新加载页面以更新点赞数量的显示。