2014-04-27 307 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命令來讀取數據庫。

如果這個問題仍然存在,我可以發佈一些示例代碼。