使用PHP每天重置MySQL值

使用PHP每天重置MySQL值,php,mysql,Php,Mysql,我试图制作一个PHP命中计数器,将命中保存到MySQL中。如果我能以某种方式为每一天计数,那将是最好的,但到目前为止,我还没有想到如何在不太复杂的情况下做到这一点。 所以,现在(除非这里有人能解决上述问题),我想每天00:00重置MySQL中的“今日点击率”。 我似乎找不到一种方法来安排每天00:00(英国时间GMT 0)自动执行此操作。您有两种解决方案: 使用mysql的事件调度器 CREATE EVENT ON SCHEDULE EVERY 1 DAY STARTS '2015-01-07

我试图制作一个PHP命中计数器,将命中保存到MySQL中。如果我能以某种方式为每一天计数,那将是最好的,但到目前为止,我还没有想到如何在不太复杂的情况下做到这一点。 所以,现在(除非这里有人能解决上述问题),我想每天00:00重置MySQL中的“今日点击率”。
我似乎找不到一种方法来安排每天00:00(英国时间GMT 0)自动执行此操作。

您有两种解决方案:

使用mysql的事件调度器

CREATE EVENT 
ON SCHEDULE EVERY 1 DAY
STARTS '2015-01-07 00:00:00'
DO
[SQL for reset the value here];
另一个解决方案是使用PHP脚本并使用cron执行它

#!/usr/bin/env php
<?php
[PHP script for reset the value here]

(您可以将22更改为其他小时值)

您有两种解决方案:

使用mysql的事件调度器

CREATE EVENT 
ON SCHEDULE EVERY 1 DAY
STARTS '2015-01-07 00:00:00'
DO
[SQL for reset the value here];
另一个解决方案是使用PHP脚本并使用cron执行它

#!/usr/bin/env php
<?php
[PHP script for reset the value here]

(您可以将22更改为其他小时值)

Giancarlo回答您的问题绝对正确,
但我建议采用不同的方法:

有一个包含字段的“点击”表

hitsDate (date) | hits (int)
----------------------------------
2015-01-06    | 329
2015-01-05    | 0
每次您想要添加点击次数(登录时?或会话开始时?)与当前日期进行比较:

Update hits_table set hits=hits+1 where hitsDate=curdate()
如果返回错误或false,则没有要更新的行,因此我们插入一个包含当前日期和第一次点击的新行:

Insert into hits_table (hitsDate, hits) values (curdate(), 1)

现在,您可以查看任意一天的热门歌曲,制作精美的图表,

吉安卡洛回答您的问题绝对正确,
但我建议采用不同的方法:

有一个包含字段的“点击”表

hitsDate (date) | hits (int)
----------------------------------
2015-01-06    | 329
2015-01-05    | 0
每次您想要添加点击次数(登录时?或会话开始时?)与当前日期进行比较:

Update hits_table set hits=hits+1 where hitsDate=curdate()
如果返回错误或false,则没有要更新的行,因此我们插入一个包含当前日期和第一次点击的新行:

Insert into hits_table (hitsDate, hits) values (curdate(), 1)

现在,您可以查看任意一天的点击率,可以制作漂亮的图表,

您可以使用cron作业完成它,因此您宁愿将计数器重新设置为零,也不愿执行查询为您获取该信息所需的工作?重新设置为零意味着您没有历史数据返回右侧?为什么不每天都有一行数据?然后,您只需将该值添加到现有行中,或者如果“今天”不存在,则插入新行。我该怎么做,@Jeff?您可以使用cron作业来完成它,因此您宁愿将计数器重新设置为零,也不愿执行查询为您获取该信息所需的工作?重新设置为零意味着您没有历史数据返回右侧?为什么不每天都有一行数据?然后,您只需将该值添加到现有行中,或者如果“today”不存在,则插入一个新行。我该怎么做,@Jeff?