2014-04-27 266 views
0

我有一个简单的PHP页面,它将查询发送到mySQL数据库并将数据显示到HTML表格中。使用mySQL和PHP每5秒更新一次HTML表格?

我怎样才能让它每5秒钟完成一次?目前它在页面加载时执行此操作。数据库将有不断变化的数据,所以我试图让代码每5秒刷新一次以保持表的更新。

我该怎么做呢?

+0

你必须使用jquery ajax。 – dkakoti

回答

0

您需要使用javascript ajax。例如,

<script> 
function loadXMLDoc() 
{ 
var xmlhttp; 
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("myDiv").innerHTML=xmlhttp.responseText; // your div 
    } 
    } 
xmlhttp.open("GET","getdatabase.php",true); //your php file 
xmlhttp.send(); 
} 
window.setInterval(function(){ 
    loadXMLDoc(); 
}, 5000); 

</script> 

然后在HTML中,必须具有与指定的ID(myDiv)FPR例如一个div:

<body> 
<div id="myDiv"></div> 
</body> 

然后在getdatabase.php必须从数据库读取的值和回声出来。例如,

<?php 
$con=mysqli_connect("example.com","peter","abc123","my_db");// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($con,"SELECT * FROM Persons"); 

echo "<table border='1'> 
<tr> 
<th>Firstname</th> 
<th>Lastname</th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) { 
    echo "<tr>"; 
    echo "<td>" . $row['FirstName'] . "</td>"; 
    echo "<td>" . $row['LastName'] . "</td>"; 
    echo "</tr>"; 
} 

echo "</table>"; 

mysqli_close($con); 
?> 

希望工程,多见于www.w3schools.com/

+0

因此,索引页面是用PHP编写的。对于你的第一块代码,我会将它嵌入到索引页面吗?另外为什么我需要一个div?所以我在索引页上也使用了第三块代码。这需要在一个单独的吗? – tyler5819

+0

第一个和第二个块位于您的索引页中。 –

+0

如果第三个页面位于单独的页面上,它如何将表格嵌入索引页面? – tyler5819

2

您需要使用客户端脚本语言(如JavaScript)才能让网页在向客户端提供服务后执行某些操作。

具体而言,您将需要使用timersAJAX calls。您也可以找到jQuery库用于抽象AJAX调用,但它不是必需的。

-2

使用JavaScript计时器。从那里你可以定期运行SQL命令来读取数据库。

如果这个问题仍然存在,我可以发布一些示例代码。