创建一个Like函数php mysql ajax

时间:2015-02-27 15:53:46

标签: 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喜欢/ delike问题:

我在搜索时发现了这个jQuery : Changing class of button with AJAX call,看起来很简单,非常好看。我也遵循这个http://pluscss.com/tutorials/ajax-like-script-using-php-mysql-jquery教程。但是我遇到了问题并将它们结合起来。

这就是我想要做的事情:

  1. 计算当前的喜欢数量
  2. 之前检查用户是否喜欢它
  3. 为用户提供喜欢的选项(或以前喜欢的熟食)
  4. 使用ajax和like.php

    有人可以帮助我,我会非常感激!

1 个答案:

答案 0 :(得分:1)

将表格分开会更好。 创建post_likes表和comments_likes表。 这样,你不仅可以摆脱现有的问题,而且结构更加分离,更可重复使用。