0

以下のコードがあります。目標は、選択ステートメントを実行し、結果を表示してから、ステートメントを再度実行することです。私はそれを正しく動作させることができません。コードがループなしで実行されると正常に動作しますが、コードがループ内にあると動作しません。目標は、ループを永遠に維持することですが、「現在のループ実行」中に各 select ステートメントの結果を表示することです。私は何が欠けていますか?ループの「実行」ごとに結果を表示し、ループの反復が成功するたびにブラウザに結果を送信しながら、戻ってもう一度実行したいと思います。ob_implicit_flush および flush コマンドを試しました。

前もって感謝します。

$query = "SELECT * FROM dict WHERE ID in (FLOOR(1 + (RAND() * 662337))) ";

for ($i=1; $i =>1; $i++) {

$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo $row['word'];


};
4

1 に答える 1

0

これを行う最善の方法は、php/ajax を使用することだと思います。

    <html>
    <head>
    <script>
    function showQueryResult()
    {
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("txtHint").innerHTML+=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","getQuery.php",true);
    xmlhttp.send();
    }
    </script>
    </head>
<body>
<script>setInterval("showQueryResult()",100);
<div id="txtHint" ></div>
</body>
</html>

getQuery.php ページは次のようになります。

<?php
$query = "SELECT * FROM dict WHERE ID in (FLOOR(1 + (RAND() * 662337))) ";

$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo $row['word'];

?>
于 2013-03-02T21:22:32.587 に答える