php - 创建 Like 函数 php mysql ajax

标签 php jquery mysql ajax

好吧,我一直在搜索并找到很多关于这个主题的信息, 但没有什么令人满意的。

我想跟踪谁喜欢了什么,而不仅仅是向表格添加 +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教程。但我在组合它们时遇到了问题。

这就是我正在尝试做的事情:

  1. 计算当前的点赞数
  2. 检查用户之前是否喜欢过它
  3. 让用户可以选择喜欢(如果以前喜欢过,则可以选择不喜欢)

使用 ajax 和 like.php

有人可以帮我解决这个问题吗,我将非常感激!

最佳答案

最好将表分开。 创建 post_likes 表和 comments_likes 表。 这样,您不仅可以摆脱现有的问题,而且结构更加解耦并且更可重用。

关于php - 创建 Like 函数 php mysql ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28769110/

相关文章:

每个用户的 PHP 多个并发 session

php - MYSQL:如何从不同行的单列中获取数据?

php - 使用 Moodle 网络服务创建用户

php - 如何通过登录表单在 PHP 中使用 session

javascript - 用特定颜色的 li 元素绘画

java - ResultSet.getDate() 返回错误的日期

mysql - 如何将mysql数据库从heroku拉到本地机器

javascript - 使用 Masonry 显示 Instafeed 图像

javascript - 响应时如何更改topnav中的Awesome Icons位置

java - 无法通过 Docker 创建与数据库服务器的连接