Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当MYSQL列值增加100时执行某些操作_Php_Mysql_Database_Database Design - Fatal编程技术网

Php 当MYSQL列值增加100时执行某些操作

Php 当MYSQL列值增加100时执行某些操作,php,mysql,database,database-design,Php,Mysql,Database,Database Design,我需要提醒一个站点的成员,当他们的帖子数量达到100的倍数时。当mysql表中的值达到100、200、300等时,是否可以运行函数或回显某些内容 表结构: username | password | email | posts 我当前正在使用以下内容显示他们的帖子数量: $sql = mysql_query("SELECT `posts` FROM `user` WHERE username='$username'") or die(mysql_error()); $row = mysql

我需要提醒一个站点的成员,当他们的帖子数量达到100的倍数时。当mysql表中的值达到100、200、300等时,是否可以运行函数或回显某些内容

表结构:

username | password | email | posts 

我当前正在使用以下内容显示他们的帖子数量:

$sql = mysql_query("SELECT `posts` FROM `user` WHERE username='$username'") or die(mysql_error());
$row = mysql_fetch_array($sql);

echo "<br /><h4>Your posts:</h4>" . " " . $row['posts'];
您可以使用触发器:

只需创建一个cron作业

即可使用触发器:

只需创建一个cron作业

您需要一个

模运算。返回N除以M的余数

像这样

SELECT username
FROM `user` 
WHERE username='$username' AND MOD(posts,100) = 0
您可以在用户每次发布新帖子时检查条件,您需要

模运算。返回N除以M的余数

像这样

SELECT username
FROM `user` 
WHERE username='$username' AND MOD(posts,100) = 0

每次用户发布新帖子时,您都可以检查该条件

在每次插入时添加额外的查询通常不是一个好主意。这比使用触发器要好,而且如果您通过ID找到该用户,并且您有一个索引,那么这不应该是一个问题。该逻辑不属于查询。如果您想要具有该条件的所有用户的列表,在SQL中,它将更快,更易于维护,而且您不必从数据库中获取所有用户,也不必使用ifI进行循环。我不认为这是一个用例。为什么你会关心所有有100、200、300篇帖子的用户?在每次插入时添加一个额外的查询通常不是一个好主意。比触发器更好,如果你通过ID找到用户,并且你有一个索引,这应该不是一个问题。此逻辑不属于查询。如果你想要所有有此条件的用户的列表,在SQL中,它将更快,更易于维护,而且您不必从数据库中获取所有用户,也不必使用ifI进行循环。我不认为这是一个用例。为什么你会关心所有拥有100、200、300篇帖子的用户?这种逻辑不属于MySQL。它应该在PHP中完成。Posts是用户表的一部分,因此当您创建或尝试显示模型时,可以检查POST的数量。如果两个事件几乎同时发生,并且从199增加到201,则可能会错过应用程序中的触发器,因此需要进行特殊处理。MySQL触发器保证能工作。谢谢,我会试试。这个逻辑不属于MySQL。它应该在PHP中完成。Posts是用户表的一部分,因此当您创建或尝试显示模型时,可以检查POST的数量。如果两个事件几乎同时发生,并且从199增加到201,则可能会错过应用程序中的触发器,因此需要进行特殊处理。MySQL触发器保证能工作。谢谢,我来试试。