0

(int)の配列を取り、Instance-IDそれぞれに対して SQL クエリを実行し、結果をテーブルに書き込む PHP スクリプトがあります。

データベースのデータを X 秒ごとに (または新しいデータごとに) 更新したいのですが、その方法が見つかりませんでした。

function checkStatus()
{   
    global $instances_ID;
    // Create connection
    $con=mysqli_connect("*******","*****","*****","****"); 

   // Check connection
   if (mysqli_connect_errno($con))
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    //Clear page
    echo "<script type='text/javascript'>\n";
    echo "document.body.innerHTML = ''";
    echo "</script>";   

    echo "<h3><center>Last Backups:</center></h3><br><br>";

    //Build table
    echo "<table border='1'align='center'>
    <tr>
    <th>Instance ID</th>
    <th>Backup ID</th>
    <th>STATUS</th>
    <th>Start Time</th>
    <th>End Time</th>
    <th>Progress</th>
    <th>Servlet</th>
    </tr>";
    foreach ($instances_ID as $id)
    {
        $result = mysqli_query($con,"SELECT * FROM `instance_backups` WHERE INSTANCE_ID='".$id."' ORDER BY `instance_backups`.`START_TIMESTAMP` DESC LIMIT 1");
        $row = mysqli_fetch_array($result);
    echo "<tr>";
    echo "<td align='center'>" . $row['INSTANCE_ID'] . "</td>";
    echo "<td align='center'>" . $row['INSTANCE_BACKUP_ID'] . "</td>";
    echo "<td align='center'>" . $row['STATUS'] . "</td>";
    echo "<td align='center'>" . $row['START_TIMESTAMP'] . "</td>";
    echo "<td align='center'>" . $row['END_TIMESTAMP'] . "</td>";
    echo "<td align='center'>" . $row['PROGRESS_PERCENTAGE'] . "</td>";
    echo "<td><input type=button onClick=location.href='******' value='Immidiate Backup'>";
    echo "</tr>";       
    }

    echo "</table>";
    //Close the connection
    mysqli_close($con);
}
4

1 に答える 1

0

まず、javascript ライブラリが必要です。jQueryを強くお勧めします。最新バージョンをダウンロードしてサーバーにアップロードします。できれば「jscripts」などの別のフォルダーにアップロードしてください。

setInterval() を調べます。小さくて簡単な関数を使用して、その有用性を示します。setInterval( function name, x ) -- x ミリ秒ごとに関数を呼び出します。これを行う場合:

function addText(){
    document.getElementById('testDiv').innerHTML = " HELLO ";
}
setInterval( addText, 1000 );

id='testDiv' の div がある場合、1 秒ごとに ' HELLO ' が div に追加され、無限に入力されることがわかります。

今、あなたは「jquery ajax」を研究しています。これはより複雑であり、この質問には多くの手順が含まれているため、ここでは詳しく説明しませんが、AJAX は基本的に別のスクリプトへのバックグラウンド接続を作成し、ページを更新することなく、そこから出力を取得できます。3つ繋げたら笑える…

于 2013-04-27T08:23:08.997 に答える