2017-01-01 16 views
-1

これは私のやり方を示唆するようなものです。特定の時間にphpを指定してクエリを実行する方法

私には製品があるテーブルがあります。私がやっているのは、例えば、ユーザーがログインしたときに現在31-12-16のような有効期限が設定されているとします。その時点で有効期限のある製品がdisabledとマークされるクエリを実行できます。しかし、これは適切な解決策ではありません。ユーザーがログインしていない場合、製品は彼がログするまでdisabledとマークされません。

cron-jobを適用するよう提案されました。しかし、私はそれが何であるか分からない。

どのように私はこの問題を自動的に達成するでしょうか?

+0

http://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job –

+0

@ダゴン私は時間が非常に短く、私はスクラッチからcron-jobを学ばなければならない!プラス私は完了するために他のプロジェクトがあります。私はここで最も簡単で効率的な提案を得るためにここにいます。もしあなたが示唆を持っていれば、そうでなければ気にしないでください! – Beenu

+0

Cronジョブは本当に簡単に習得できます。ファイルに、実行するコマンドとそれを実行するスケジュールを示す行を追加するだけです。コマンドは 'php/path/to/script.php'のようなものです。 – Barmar

答えて

1

最も簡単な方法は、毎日実行されるMySQL eventを作成し、期限切れの製品をdisabledに更新することです。

MySQLのイベント

DELIMITER $$ 
CREATE PROCEDURE check_products() 
BEGIN 
// Place your update query here 
// It is executed every day. 
END $$ 
DELIMITER ; 


DELIMITER $$ 
CREATE 
    EVENT `disable_expired_products` 
    ON SCHEDULE EVERY 1 DAY 
    DO BEGIN 
    CALL check_products(); 
END $$ 
DELIMITER ; 

cronジョブ

  1. をMySQLのイベントは、デフォルトでは無効になって心の中で取ると/etc/mysql/my.cnf

    [mysqld]event_scheduler=1を置くことによって活性化される必要がありますあなたのシェルタイプのcrontに行くABはあなたの行をフェッチし、必要に応じてそれらを更新しています1:15

update.php15 1 * * * php /home/user/update.php

午前

で毎晩例の実行のために、

  • セットアップcronジョブを-e。

    要件に応じて、表を表示することもできます。

  • +0

    これは役に立つと思われます。もしcronjob用の短いスクリプトを提供できるのであれば、私にとって解決される多くの問題があります! –

    +0

    私は自分の答えにcronjobを設定する方法を追加しました。 – user3606329

    +0

    ああ神様!かんたんだよ!最後の1つの質問。それはウェブサイトのMySQLのパフォーマンスには影響しません。それはそれを遅らせることはありませんか? – Beenu

    関連する問題