如果php每分钟更新mysql,请排队
我正在尝试做一些事情,在不同的时间执行3个不同的事情 因此,第一分钟将执行mysql查询,将set server更新为1 第二分钟将更新并将服务器行设置为2 第三分钟将更新并将服务器行设置为3 然后第四分钟将更新并再次将服务器行设置为1 第五分钟将更新并再次将服务器行设置为2 第六分钟将更新并再次将服务器行设置为3,依此类推,但始终为1,2,3 1,2,3 我可以这样做,但我有一个很长的代码,我知道可以做得更短,但不知道如何做如果php每分钟更新mysql,请排队,php,mysql,Php,Mysql,我正在尝试做一些事情,在不同的时间执行3个不同的事情 因此,第一分钟将执行mysql查询,将set server更新为1 第二分钟将更新并将服务器行设置为2 第三分钟将更新并将服务器行设置为3 然后第四分钟将更新并再次将服务器行设置为1 第五分钟将更新并再次将服务器行设置为2 第六分钟将更新并再次将服务器行设置为3,依此类推,但始终为1,2,3 1,2,3 我可以这样做,但我有一个很长的代码,我知道可以做得更短,但不知道如何做 $t_Min=date("i"); if ($t_Min == 1
$t_Min=date("i");
if ($t_Min == 1) {
mysql_query("UPDATE `list` SET `server` = '1'"); }
else if ($t_Min == 2) {
mysql_query("UPDATE `list` SET `server` = '2'"); }
else if ($t_Min == 3) {
mysql_query("UPDATE `list` SET `server` = '3'"); }
else if ($t_Min == 4) {
mysql_query("UPDATE `list` SET `server` = '1'"); }
else if ($t_Min == 5) {
mysql_query("UPDATE `list` SET `server` = '2'"); }
else if ($t_Min == 6) {
mysql_query("UPDATE `list` SET `server` = '3'"); }
使用模运算符
%
:
$insertValue = ($t_Min-1) % 3 + 1;
下面是一个演示:
$values = [1,2,3,4,5,6];
foreach ($values as $t_Min) {
$insertValue = ($t_Min-1) % 3 + 1;
echo "$t_Min => $insertValue \n";
}
将返回:
1 => 1
2 => 2
3 => 3
4 => 1
5 => 2
6 => 3
演示:使用模运算符
%
:
$insertValue = ($t_Min-1) % 3 + 1;
下面是一个演示:
$values = [1,2,3,4,5,6];
foreach ($values as $t_Min) {
$insertValue = ($t_Min-1) % 3 + 1;
echo "$t_Min => $insertValue \n";
}
将返回:
1 => 1
2 => 2
3 => 3
4 => 1
5 => 2
6 => 3
演示:让SQL完成工作的最简单方法-在一个查询中:
UPDATE list SET server=IF(MOD(MINUTE(NOW()), 3) = 0, 3, MOD(MINUTE(NOW()), 3))
当然,这取决于MySQL中的时间戳是否正确。您也可以使用变量来存储MOD,但这很容易读取
编辑:当然,如果你想要PHP中的数字,你可以在那里计算。逐步细分为:
$t_Min = (int)date("i");
$minuteMod = $t_Min % 3; // This is modulus
$minutes = ($minuteMod == 0 ? 3 : $minuteMod);
最容易让SQL完成工作-在一个查询中:
UPDATE list SET server=IF(MOD(MINUTE(NOW()), 3) = 0, 3, MOD(MINUTE(NOW()), 3))
当然,这取决于MySQL中的时间戳是否正确。您也可以使用变量来存储MOD,但这很容易读取
编辑:当然,如果你想要PHP中的数字,你可以在那里计算。逐步细分为:
$t_Min = (int)date("i");
$minuteMod = $t_Min % 3; // This is modulus
$minutes = ($minuteMod == 0 ? 3 : $minuteMod);
让PHP脚本在服务器上无限期运行是不好的。您可能希望使用javascript和ajax之类的东西每隔60秒发出一次请求,并让它传递变量以确定要使用哪个列表。或者你可以按照Robbie的建议去做。这实际上是一个脚本,需要每分钟在本地运行一次来更新行。让PHP脚本在服务器上无限期运行是不好的。您可能希望使用javascript和ajax之类的东西每隔60秒发出一次请求,并让它传递变量以确定要使用哪个列表。或者你可以按照Robbie的建议去做。这实际上是一个脚本,需要每分钟在本地运行一次来更新行。它不应该是
0吗?改为3
?它不应该是0吗?3
?