0

私は MySQL と PHP/Cron Jobs の初心者なので、イベントを配置する場所などについて簡単に説明していただければ、とにかく質問に答えていただければ幸いです。

質問: my_Table というテーブルがあり、名前、年齢、タイムスタンプの 3 つのフィールドを持つエントリがあります。たとえば、1行にこれがあります。サム | 20 | いつでも。さて、その行が 30 分経過したら、それを削除したいと思います。30 分に達した他の行と同じです。助けてくれてありがとう。他の回答を読みましたが、私はまだ初心者だと言いました。人々が何に答えているのかよくわかりません。助けてくれてありがとう

Cron ジョブまたは MySQL イベント (イベントの設定方法がわからない) でこれを行うことができれば、誰でも助けてくれます! :D

30分後に削除するための私のコード(30分経っていなくてもすべての行を削除します)

<?php
include_once('../config.php');

$con = mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME);



$runpurge = mysql_query ("DELETE FROM my_table WHERE timestamp < NOW() - INTERVAL 30 MINUTE");






?>

メイン表示コード:

$result = mysql_query ("SELECT * FROM cw_LFG ORDER BY `time` DESC ") or die(mysql_error);



while ($row=mysql_fetch_array($result)) {

    echo "<tbody>";
    echo "<tr><td>";
    echo strip_tags($row['cname']);
    echo "</td><td>";
    echo $row['level'];
    echo "</td><td>";
    echo strip_tags($row['region']);
    echo "</td><td width='100px'>";
    echo timeElapsed(strtotime($row['time']));
    echo "</td><td style='word-wrap: break-word'>";
    echo strip_tags($row['comment']);
    echo "</td></tr>";
    echo "</tbody>";



}

echo "</table>";
$curtime = date('Y-m-d H:i:s');
$curtimestr = strtotime($curtime);
function timeElapsed($time) {
    $elapsedTime = time() - $time;

    if ($elapsedTime < 1) {
        return 'Right now';
    }
    if ($elapsedTime < 60){
        return '< 1 Minute ago';
    }
4

1 に答える 1

2

SQLは次のようになります

DELETE FROM my_table
WHERE timestamp < NOW() - INTERVAL 30 MINUTE

この SQL を実行する PHP スクリプトを作成し、30 分ごとに実行する crontab エントリを追加します。または、MySQL Event Scheduler を使用して定期的に実行します。ここに記載されています。

于 2013-07-02T00:37:51.760 に答える