首页 > 解决方案 > 如何限制用户仅向 MySQL 插入数据 1 次

问题描述

我想建立一个有喜欢和不喜欢按钮的博客。我的问题是当用户点击喜欢按钮时,我实际上不能限制他不再这样做,也不能一次又一次地喜欢帖子。我使用 ajax( $.post) 和 JQuery 来插入数据。

我怎样才能做到这一点?我需要更改我的数据库结构吗?

var did_liked = 0;
$("#insert_like").click(function (e) {
    var post_id = $("#post_id").val();
    did_liked +=1 ;
    if (did_liked == 1) {
        $.post("./inc/like.php", {
            post_id_like: post_id
        }, function (data, status) {
            $("#insert_like").text(data);
        });
    }
});
$("#insert_dislike").click(function (e) {
    var post_id = $("#post_id").val();
    $.post("./inc/like.php", {
        post_id_dislike: post_id
    }, function (data, status) {
        $("#insert_dislike").text(data);
    });
});

有了did_liked我可以防止用户再次不喜欢它,但如果他刷新页面,他可以这样做。

我的数据库:

这里

标签: phpjquerymysqlajax

解决方案


用 userID、LikedPostID、DislikedPostID 列创建一个表。在你可以检查这个之后:

SELECT LikedPostID, DislikedPostID FROM tblUserLikes WHERE userID='$user'

在 PHP 中

if ($LikedPostID == $thisPostID || $DislikedPostID == $thisPostID) { // make a like or dislike button to disable state }

推荐阅读