在数据库,mysql中自动更新价格

时间:2012-05-02 04:58:13

标签: mysql

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

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

我猜我将不得不使用某种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>";



}


}

2 个答案:

答案 0 :(得分:1)

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

创建更新脚本并手动运行后,将其添加为cronjob就像运行命令`crontab -e'一样简单,并且每隔午夜添加一行来执行脚本:

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

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

答案 1 :(得分:0)

如果你的服务器上有cronjob,那就非常明显了 - 你制作了一个更新它的PHP脚本,然后把它扔进日常的cronjob中。

但是,我是这样做的:

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

这样,每次有人加载页面并且自上次更新以来已经过了一天,它会为它们进行更新。但是,这意味着每天一次对随机用户来说速度较慢。如果这是不可接受的,那就有一点变化:

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

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