1

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

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

我猜我将不得不使用某种 cronjob 但不知道如何做到这一点。我没有使用 cronjobs 的经验,并且是 php 的菜鸟。

有任何想法吗?谢谢!


我已经阅读了 foreach 循环并编写了一些代码。但是我的 foreach 循环只为第一个项目编号运行一次。foreach 循环运行,然后转到“api.php”页面,然后停止。它不会为每个项目编号不断循环。我如何告诉它遍历我数据库中的所有项目编号?

另外,如果您在我的代码中发现任何其他错误,请告诉我。谢谢

 ....


$itemnumber = array("".$result['item_number']."");

foreach ($itemnumber as $item_number) {

echo "<form method=\"post\" action=\"api.php\" name=\"ChangeSubmit\" id=\"ChangeSubmit\">";
echo "<input type=\"text\" name=\"item_number\" value=\"{$item_number}\" />";

echo "<script type=\"text/javascript\">
function myfunc () {
var frm = document.getElementById(\"ChangeSubmit\");
frm.submit();
}
window.onload = myfunc;
</script></form>";



}


}
4

2 回答 2

1

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

创建更新脚本并手动运行后,将其添加为 cronjob 就像运行命令“crontab -e”并添加此行以在每个午夜执行脚本一样简单:

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

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

于 2012-05-02T05:06:51.183 回答
0

如果您的服务器上有 cronjob,那将非常明显 - 您制作一个更新它的 PHP 脚本,并将其放入每日的 cronjob 中。

但是,我这样做:

方法一:在每次页面请求开始时,检查最后一次“更新”时间(存储方式由您选择)。如果超过一天,请进行更新并将“更新”时间设置为当前时间。

这样,每次有人加载页面并且距离上次更新已经过去一天时,它都会为他们更新。但是,这意味着对于随机用户来说,它会变慢,每天一次。如果这是不可接受的,有一点改变:

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

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

于 2012-05-02T05:06:08.900 回答