1

喜欢巴顿的桌子

  • LIKE_ID(每个帖子的唯一like ID)
  • LIKES(有人点赞按钮的次数)
  • POST_ID(对应posts表的POST_ID)

一个单独的帖子表具有上面的 POST_ID,对于每个帖子来说都是唯一的

为用户存在单独的用户表

因此,当用户单击“赞”按钮时,它会将 +1 添加到“赞”表中,其中 post_id 是他们喜欢的任何帖子。

文件

$(document).ready(function() {
$('img.like_click').click(function() {
var form = $(this).closest('form[name=like_form]');
var lid = $(form).find('input[name=lid]').val();
$.post("like.php?lid='" + lid + "', function(data) {
$(form).find('span.like_count').html(data);
});
});

like.php 文件

$lid = $_GET['lid'];
mysql_query("UPDATE tbl_likes SET likes=likes+1 WHERE like_id=".$lid) or     die(mysql_error());
$result = mysql_query("SELECT likes from files where fileid=" . $id) or die(mysql_error());
$row = mysql_fetch_assoc($result);
echo $row['likes'];

我不知道如何阻止用户一遍又一遍地喜欢。我发现 facebook 风格,比如网络上阻止人们这样做的脚本,但它们是基于 IP 地址的(如果你没有登录,你就不能喜欢我的帖子)并且这些代码让我感到困惑,因为我不是jQuery的家伙。我仍在尝试弄清楚如何使用上面的代码正确显示点赞按钮,但最难的部分是限制多个点赞,这让我很困惑。任何人都可以帮忙吗?谢谢

4

1 回答 1

3

您说除非用户登录,否则他们不会喜欢您的帖子。因此,在您的情况下,您自己做起来很容易。您只需要跟踪哪些用户喜欢哪些帖子以防止重复。

在like 表中,删除该likes列。我们稍后会计算。添加一user_id列,以便您可以跟踪哪些用户喜欢哪些帖子。然后在AND上添加一个组合 以防止重复。primary_keypost_iduser_id

然后像这样构造您的查询:

$q = mysql_query("INSERT INTO tbl_likes (user_id, post_id) VALUES ('{$user_id}', {$post_id})");

if( $q === false ) {
    // query didn't work, probably a duplicate
}
else {
    // return a success etc
}

如果你想获得喜欢的次数,请使用如下计数查询:

SELECT post_id, count(*) as c FROM tbl_likes WHERE post_id = $post_id;
于 2012-06-25T05:35:41.957 回答