过去几天我一直在搜索fb喜欢的数据库。我也得到here的帮助。现在我知道如何从fb获取喜欢的数据,读取结果并在数据库中更新它。
当我在一个循环中喜欢100多个fb页面并且如果我的最终用户更多时,它会给数据库带来负担并且代码运行得非常低。所以我做了两个链接。第一个链接(update.php)更新数据库中的数据,第二个链接(index.php)显示快速运行的用户数字。现在我想每隔一小时添加一次自动更新功能。
我知道逻辑,但不知道如何在语法中转换它。我想过做一个更新'只有一个字段的数据时间类型的表。当最终用户访问该链接时,它将首先从“更新”中读取日期时间值。表。如果表中当前时间和上次更新时间之间的差异超过一小时,则运行一个函数(我已写过一个),否则运行代码的剩余部分而不运行该函数。
如果这个逻辑是正确的,请建议并帮助我解释语法。
暂停后编辑
我有一个代码(在update.php中),它可以读取'喜欢'从fb页面并将其放在fblikes字段下的表fbtable中的数据库fbdb中。这很有效。我有另一个代码(在index.php中)从fbtable读取数据并显示前端的fblikes字段值。最终用户将始终看到旧的Likes ......即fbtable中可用的数据。只有在我运行update.php文件时,才会向用户显示更新后的喜欢。我没有合并这两个文件,因为如果我有100多个页面,页面加载非常慢,这就是为什么我想要一个函数来检查更新'表,如果当前时间和上次更新时间的差异超过1小时,则应运行update.php以确保数据每1小时更新一次。
<?php
include "conn.php";
?>
<html>
<head>
.
.
</head>
<body>
read datetime from 'update' table
if current time - last updated time > 1 hour
run the function
else
do below task
.
.
show data from database to end user
.
.
</body>
</html>
谢谢
答案 0 :(得分:1)
首先,您可以查看使用您的操作系统安排更新任务每小时运行一次,但是如果您想要遵循您建议的方法......
假设一个last_update表(简化)
create table last_update ( updated_at datetime);
然后您可以发送查询以查找过去一小时内的更新
select max(updated_at) last_updated
from last_update
where updated_at > now() - interval 1 hour
如果更新发生在最后一小时,则返回上次更新时间,如果不是
,则返回没有行或
select count(*) up_to_date
from last_update
where updated_at > now() - interval 1 hour
这将返回过去一小时内发生的更新次数,如果不是
,则返回没有行的更新次数您可以测试查询结果以决定是否运行更新功能