如果在另一个表中发生某些事情,则更新一个表

时间:2011-06-05 00:18:43

标签: mysql

如果在另一个中发生某些事情,我怎么能更新表格中的值?

例如,

我设置了like表,当有人喜欢Post时,我希望'Posts'表中的'numberOfLikes'增加。

我怎么能实现这个目标?

2 个答案:

答案 0 :(得分:1)

除了在update之类的同时执行insert之外,您还可以在like表上创建一个触发器来更新posts表。 / p>

delimiter |

create trigger likepost after insert on like
  for each row begin
    update posts set likes = likes + 1 where post_id = new.post_id;
  end;
|

delimiter ;

(以上内容很快改编自the documentation,因此您必须根据实际架构设计进行更改。)

您还需要创建处理喜欢删除的触发器。

答案 1 :(得分:0)

我不知道你在喜欢的表中添加了什么,但这是你应该在post表中做的。

UPDATE Posts set numberOfLikes = numberOfLikes + 1 WHERE post_id = 'x'

这就是查询,只要有人喜欢帖子就可以运行。

例如:

<a href="?like=5">Like this post</a>

然后

<?php
    if (isset($_GET['like']) && is_numeric($_GET['like'])) {
        $update = mysql_query("UPDATE Posts set numberOfLikes = numberOfLikes + 1 WHERE post_id = '".$_GET['like']."'");

        if ($update) {
            echo "Thank you sir!";
        } else {
            echo "Oups, try again!";
        }
    }
?>