最新公告
  • 欢迎您光临站长源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • php点赞功能怎么做

    正文概述 管理员   2024-08-29   19

    实现点赞功能的关键是在点击点赞按钮时,将用户的点赞信息保存到数据库中,同时更新相应的点赞数显示。下面给出一个简单的实现方式

    首先,需要创建一个点赞表,记录用户点赞信息。表结构如下:

    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点赞功能怎么做

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    支付宝支付
    余额支付
    ×
    微信扫码支付 0 元