好吧,我一直在搜索并找到很多关于这个主题的信息, 但没有什么令人满意的。
我想跟踪谁喜欢了什么,而不仅仅是向表格添加 +1。
我有三个表:帖子、评论和点赞。
目前的表格设计如下
CREATE TABLE IF NOT EXISTS `likes` (
`like_id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`post_id_fk` INT(11),
`comment_id_fk` INT(11),
`uid_fk` int(11) NOT NULL,
`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`ip` varchar(39) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0.0.0.0',
FOREIGN KEY (uid_fk) REFERENCES users(uid),
FOREIGN KEY (post_id_fk) REFERENCES post(post_id),
FOREIGN KEY (comment_id_fk) REFERENCES comments(comments_id),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
正如你所看到的,我有三个不同的外键,uid_fk 代表用户 uid,这样我就可以知道谁喜欢什么。现在问题来了,一个外键指向 post_id,另一个外键指向 comments_id。
如果外键不存在,Mysql 将不接受外键。如果我想“喜欢”一条评论,由于 post_id_fk 的外键,它不会被喜欢。
如何解决数据库困惑问题?
以及 AJAX 点赞/取消点赞问题:
我找到了这个jQuery : Changing class of button with AJAX call当我搜索时,它看起来很简单而且非常漂亮。我也关注了这个http://pluscss.com/tutorials/ajax-like-script-using-php-mysql-jquery教程。但我在组合它们时遇到了问题。
这就是我正在尝试做的事情:
- 计算当前的点赞数
- 检查用户之前是否喜欢过它
- 让用户可以选择喜欢(如果以前喜欢过,则可以选择不喜欢)
使用 ajax 和 like.php
有人可以帮我解决这个问题吗,我将非常感激!
最佳答案
最好将表分开。 创建 post_likes 表和 comments_likes 表。 这样,您不仅可以摆脱现有的问题,而且结构更加解耦并且更可重用。
关于php - 创建 Like 函数 php mysql ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28769110/