像Button的表
单独的邮局表格上面有一个POST_ID,对于每个帖子都是唯一的
用户存在单独的用户表
因此,当用户点击“赞”按钮时,它会向Like表中添加+1,其中post_id是他们喜欢的任何帖子。
javascript文件
$(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的家伙。我仍然试图弄清楚如何使用上面的代码正确显示类似的按钮,但最困难的部分是限制多个喜欢,这让我很难过。有人可以帮忙吗?感谢
答案 0 :(得分:1)
你说用户不喜欢你的帖子,除非他们已经登录。所以在你的情况下,你自己很容易。您只需跟踪哪些用户喜欢哪些帖子以防止重复。
在相似的表格中,删除likes
列。我们稍后会计算出来。添加user_id
列,以便跟踪哪些用户喜欢哪些帖子。然后在primary_key
和post_id
上添加组合 user_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;