数据库自动更新价格,mysql

数据库自动更新价格,mysql,mysql,Mysql,我目前正在从一个站点获取产品,将其存储在数据库中,然后在另一个站点上显示其价格。我正试图从一个网站获取价格,以便在我的数据库中每天更新,以便新更新的价格可以显示在我的另一个网站上 现在我正在使用商品编号获取产品,但必须手动进入并更新任何已更改的价格 我猜我将不得不使用某种cronjob,但不确定如何做到这一点。我没有cronjobs的经验,我是php的新手 有什么想法吗? 谢谢 我已经阅读了foreach循环,并编写了一些代码。但是我的foreach循环对于第一个项目编号只运行一次。forea

我目前正在从一个站点获取产品,将其存储在数据库中,然后在另一个站点上显示其价格。我正试图从一个网站获取价格,以便在我的数据库中每天更新,以便新更新的价格可以显示在我的另一个网站上

现在我正在使用商品编号获取产品,但必须手动进入并更新任何已更改的价格

我猜我将不得不使用某种cronjob,但不确定如何做到这一点。我没有cronjobs的经验,我是php的新手

有什么想法吗? 谢谢


我已经阅读了foreach循环,并编写了一些代码。但是我的foreach循环对于第一个项目编号只运行一次。foreach循环运行后会转到“api.php”页面,但随后停止。它不会连续循环每个项目编号。我如何让它浏览我数据库中的所有项目编号

此外,如果您看到我的代码中有任何其他错误,请让我知道。 谢谢

。。。。
$itemnumber=数组(“$result['item_number']”);
foreach($itemnumber作为$item\U编号){
回声“;
回声“;
回声“
函数myfunc(){
var frm=document.getElementById(\“ChangeSubmit\”);
frm.submit();
}
window.onload=myfunc;
";
}
}

如果您的服务器上有cronjob,这将非常明显——您可以编写一个PHP脚本对其进行更新,并将其放入日常cronjob中

但是,我是这样做的:

方法1:在每个页面请求的开头,检查最后一次“更新”时间(您选择如何存储它)。如果已超过一天,则执行更新并将“更新”时间设置为当前时间

这样,每当有人加载一个页面,并且上次更新已经一天了,它都会为他们更新。然而,这意味着对于随机用户来说,每天一次的速度要慢一些。如果这不可接受,则有一点变化:

方法2:如果需要更新(通过上面的检查方法),启动数据的异步请求,处理页面的其余部分,将其刷新给用户,然后在一个while循环中等待,直到请求完成并更新它


方法2的缺点是用户看不到更新的值,但好处是不再需要等待它们。

如果您的服务器上有cronjob,这将非常明显-您可以编写一个PHP脚本来更新它,并将其放入日常cronjob中

但是,我是这样做的:

方法1:在每个页面请求的开头,检查最后一次“更新”时间(您选择如何存储它)。如果已超过一天,则执行更新并将“更新”时间设置为当前时间

这样,每当有人加载一个页面,并且上次更新已经一天了,它都会为他们更新。然而,这意味着对于随机用户来说,每天一次的速度要慢一些。如果这不可接受,则有一点变化:

方法2:如果需要更新(通过上面的检查方法),启动数据的异步请求,处理页面的其余部分,将其刷新给用户,然后在一个while循环中等待,直到请求完成并更新它


方法2的缺点是用户看不到更新的值,但好处是不再需要等待它们。

如果您已经从外部站点检索产品数据并将其存储在本地数据库中,那么从同一来源更新价格对您来说应该没有问题。只需检索数据,在
foreach
循环或类似循环中对其进行迭代,然后根据商品编号将价格更新到数据库中

创建更新脚本并手动运行后,将其添加为cronjob将非常简单,只需运行命令“crontab-e”,然后每午夜添加此行以执行脚本:

0 0 * * * /usr/local/bin/php /path/to/your/script.php

不要忘记为您的系统使用正确的PHP路径,在shell中运行
哪个PHP
将告诉您路径。

如果您已经从外部站点检索产品数据并将其存储在本地数据库中,那么从同一来源更新价格对您来说应该没有问题。只需检索数据,在
foreach
循环或类似循环中对其进行迭代,然后根据商品编号将价格更新到数据库中

创建更新脚本并手动运行后,将其添加为cronjob将非常简单,只需运行命令“crontab-e”,然后每午夜添加此行以执行脚本:

0 0 * * * /usr/local/bin/php /path/to/your/script.php

不要忘记为您的系统使用正确的PHP路径,在shell中运行
哪个PHP
会告诉您路径。

谢谢您的回复。我将开始阅读foreach循环和cronjobs。谢谢你的回复。我将开始阅读foreach循环和cronjobs。