sql >> データベース >  >> RDS >> Mysql

ページを更新せずにテーブルを自動更新するPHPMySQL

    この手法はAJAXと呼ばれ、プロジェクトに追加するのが最も簡単なライブラリの1つは、jQuery です。 。あなたの問題はJavaScriptにあるのではなく、ページ全体をリロードするという考えにあると思います。

    更新 私はとてもいい人なので;)これは多かれ少なかれうまくいくはずです、私はそれを試していません、それでタイプミスがあるかもしれません:

    <?php
    
    $host="****";
    $user="****";
    $password="****";
    
    $cxn = mysql_pconnect ($host, $user, $password);
    
    mysql_select_db("defaultdb", $cxn);
    
    if (getenv(HTTP_X_FORWARDED_FOR)) {
    $ipaddress = getenv(HTTP_X_FORWARDED_FOR);
    } else {
    $ipaddress = getenv(REMOTE_ADDR);
    }
    
    $message = nl2br(strip_tags(nl2br($_POST["message"])));
    if (isset($_POST['submitButton'])) { 
    if ($message != "") {
    mysql_query("INSERT INTO ChatTest (ID, TimeStamp, Message) VALUES ('$ipaddress', NOW(), '$message')");
    }
    header('Location: chat.php');
    }
    
    $message = "";
    
    $data = mysql_query("SELECT * FROM ChatTest ORDER BY TimeStamp DESC") or die(mysql_error()); 
    
    $tbl = '';
    $tbl .= "<table border cellpadding=3 width='100%' style='table-layout:fixed'>
    "; 
    $tbl .= "<tr>"; 
    $tbl .= "<th style='width:10%;'>ID:</th><th style='width:10%;'>TimeStamp:</th><th style='width:70%;'>Message:</th>";
    while($info = mysql_fetch_array( $data )) { 
    $tbl .= "
    <tr>"; 
    $tbl .= " <td>".$info['ID'] . "</td> "; 
    $tbl .= " <td>".$info['TimeStamp'] . " </td>";
    $tbl .= " <td style='white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word'>".$info['Message'] . "</td></tr>
    "; 
    } 
    $tbl .= "</table>"; 
    
    mysql_close($cxn);
    
    if (isset ($_GET['update']))
    {
        echo $tbl;
        die ();
    }
    
    ?>
    <html><head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
    </head><body><center>
    <form action="chat.php" method="post">
    Message: <br><textarea type="text" name="message" style="width:80%; height:300px;"></textarea><br>
    <input type="submit" name="submitButton"/> <a href="https://www.****.com/chat.php"><button name="Refresh Chat">Refresh Chat</button></a>
    </form>
    <div id="messages" style="width:100%;">
      <?php echo $tbl; ?>
    </div></center>
    <script type="text/javascript">
    $(document).ready (function () {
        var updater = setTimeout (function () {
            $('div#messages').load ('chat.php', 'update=true');
        }, 1000);
    });
    </script>
    </body></html>
    

    コーディング手法については、SQLインジェクションを調べて、よりクリーンなHTMLを記述したいと思うかもしれませんが、きっとそこにたどり着くでしょう:)



    1. デザインの質問:オンラインでユーザー数を表示する方法は?

    2. MySQLを使用してJOINでGROUPBYのSUMを取得する

    3. MySQLでUNIONクエリが非常に遅いのはなぜですか?

    4. mysqlテーブルから最新の日付レコードのセットを選択する方法