1

現在、あるサイトから製品を取得し、データベースに保存してから、別のサイトに価格を表示しています。あるサイトから価格を取得してデータベースで毎日更新しようとしているので、更新された新しい価格を他のサイトに表示できます。

現在、アイテム番号を使用して製品を取得していますが、変更された価格を手動で更新する必要があります。

ある種のcronjobを使用する必要があると思いますが、これを行う方法がわかりません。私はcronjobsの経験がなく、phpの初心者です。

何か案は?ありがとう!


foreach ループを読み、コードを書きました。しかし、私の foreach ループは、最初の項目番号に対して 1 回しか実行されません。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ループなどで繰り返し処理し、商品番号に基づいて価格をデータベースに更新するだけです。

更新スクリプトを作成して手動で実行したら、それを cron ジョブとして追加するのは、コマンド「crontab -e」を実行し、次の行を追加して毎晩スクリプトを実行するのと同じくらい簡単です。

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

システムの PHP の正しいパスを使用することを忘れないでくださいwhich php。シェルで実行すると、パスがわかります。

于 2012-05-02T05:06:51.183 に答える
0

サーバーに cron ジョブがある場合、それは非常に明白です。それを更新する PHP スクリプトを作成し、それを毎日の cron ジョブに投入します。

ただし、私は次のようにします。

方法 1: すべてのページ要求の開始時に、最後の「更新」時刻を確認します (保存方法を選択します)。1 日以上経過している場合は、更新を行い、「更新」時刻を現在の時刻に設定します。

このようにして、誰かがページをロードし、最後の更新から 1 日が経過するたびに、更新されます。ただし、これは、1 日 1 回、ランダムなユーザーの場合は遅くなることを意味します。これが受け入れられない場合は、少し変更があります。

方法 2: 更新する必要がある場合 (上記の確認方法を使用)、データの非同期要求を開始し、ページの残りを処理してユーザーにフラッシュし、while ループで要求が終了して更新するまで待機します。それ。

方法 2 の欠点は、更新された値がユーザーに表示されないことですが、利点は、更新された値を待つ必要がないことです。

于 2012-05-02T05:06:08.900 に答える