0

ページをロードせずにファイル (mysql クエリ ループ) を実行するにはどうすればよいですか。cronjobを使用する唯一の方法ですか、それとも代替ソリューションがありますか。これまでに試した解決策: 1) php ファイルを開いたままにし、10 分ごとに自動リロードします。2) ユーザーがページにいる間に ajax を使用してページをロードする。問題は; クエリがループしているため、完了するまでに時間がかかります。ページのリロードを継続する必要なしに、これをどのように確立できますか。コード:

<meta http-equiv="refresh" content="600" >
<?php
    include("./includes/connect.php");
    $i = 1;
    $numberOfRows = mysql_query('SELECT COUNT(`id`) FROM table_name');
    $scoreboardquery = mysql_query("SELECT * FROM table_name ORDER BY points DESC");
    while(($row = mysql_fetch_assoc($scoreboardquery)) || $i<=$numberOfRows){
        $scoreid = $row['id'];
        $mysql_qeury = mysql_query("UPDATE table_name SET scoreboard_rank = '$i' WHERE id = '$scoreid'");
    $i++;
    }
            if($mysql_qeury){
            echo "Done!";
        }else
            echo "Not Done";
?>

私がやろうとしていることについて明確な考えを与えること。ポイントの降順に基づいて、ユーザーにランク (1 位、2 位、3 位) を与えようとしています。その場で、私がやろうとしていることを実装するための解決策があれば、前に出てください.

4

1 に答える 1

0

バックグラウンドで実行し、exec を使用してコマンドラインから呼び出します

何かのようなもの

exec("nohup php file.php >/dev/null 2>&1 &");

必要に応じてファイルへのパスを追加し、場合によっては php へのパスが必要になります。

于 2012-04-15T04:05:03.623 に答える