在网页中实时显示mysql表

jmp7cifd  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(308)

我有一个不断更新的mysql表,它只有不到10行。是否可以在网页中实时显示此表?我听说它可以用ajax来实现,到目前为止我看到的所有示例仍然非常混乱。到目前为止,我只使用php在网页中显示了一个静态表,代码如下:

<table>
<tr>
  <th>User ID</th>
  <th>Current Location</th>
</tr>
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME','test1');

$link=mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_NAME);

if($link===false){
    die("ERROR: Could not connect.". mysqli_connect_error());
}
$sql = "select * from last_seen";
$result = mysqli_query($link,$sql);
if($result->num_rows>0){
  while($row=$result->fetch_assoc()){
    echo "<tr><td>".$row["user_id"]."</td><td>".$row["location"]."</td></tr>";
  }
  echo "</table>";
}
else{
  echo "0 Results";
}
?>

但是我还没有找到一种不刷新页面就可以实时更新的方法。我试图显示的表如下所示:

user_id  location
-------  --------
1        room1
2        room2
3        room1
gudnpqoy

gudnpqoy1#

您可以将其用作单独的页面,并使用它调用ajax,
表\u data.php

<table>
<tr>
  <th>User ID</th>
  <th>Current Location</th>
</tr>
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME','test1');

$link=mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_NAME);

if($link===false){
    die("ERROR: Could not connect.". mysqli_connect_error());
}
$sql = "select * from last_seen";
$result = mysqli_query($link,$sql);
if($result->num_rows>0){
  while($row=$result->fetch_assoc()){
    echo "<tr><td>".$row["user_id"]."</td><td>".$row["location"]."</td></tr>";
  }
  echo "</table>";
}
else{
  echo "0 Results";
}
?>

以及主文件index.php

<h1>Table Data</h1>
<div id="table_data"></div>

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    var RefreshTimerInterval = 5000; // every 5 seconds
    $(document).ready(getData);

    function getData() {
        $.get('table_data.php', function(result) {
             $('#table_data').html(result);

             setTimeout(getData, RefreshTimerInterval);
        }
    }
</script>
9gm1akwq

9gm1akwq2#

为什么不直接用jquery将输入的数据附加到表中呢?这样它仍然会显示你插入的内容而不需要浪费带宽?
编辑-
哦,等等,我忘了你可能需要更新/删除操作的id。我建议将该表的逻辑放在另一个php脚本中,比如table.php,然后使用对该脚本的ajax调用刷新该“容器”?
编辑#2-
对不起,我应该举个例子来说明我在说什么。
假设您的表在中,我建议使用一个单独的php脚本(称为table.php)为您实际构建这个表(当您最初加载页面时,我会将这个脚本包含到主脚本中)。
将以下函数添加到js。。。

function getNewTable() {
    $("#data-table").load("table.php");
}

更新数据后,调用getnewtable(),就这样。希望有帮助!

相关问题