2010-11-17 36 views
3

我有一個不斷更新MySQL數據庫的Ruby腳本。我想實時顯示「mysql_num_rows()」。所以當一個條目通過Ruby腳本進入數據庫時​​,我希望PHP腳本實時更新其mysql_num_row()計數。如何在MySQL/PHP中進行實時數據庫輪詢?

我試過使用<meta http-equiv="refresh" content="5">,但我不認爲這是最好的解決方案。

有沒有人有更好的解決方案?

+0

我調整了你的標籤,刪除了ruby,因爲它對於這個問題並不重要,並且添加了jquery,因爲它在選定的答案中很重要。 – 2010-11-21 06:07:57

回答

0

只有PHP和JavaScript的唯一方法是不斷檢查更新,雖然wajiw是正確的,即ajax路由比整個頁面刷新更少干擾/噪音。

這將需要一個應用程序(或小應用程序)與端口/套接字上的常設連接來獲取更新。

2

在頁面上使用JavaScript定期撥打服務器的電話並獲取一些數據。使用jQuery庫跨瀏覽器支持AJAX的,你只需做到這一點:

jQuery(function($){ 
    setInterval(function(){ 
    $.get('/getrows.php', function(newRowCount){ 
     $('#rowcounter').html(newRowCount); 
    }); 
    },5000); // 5000ms == 5 seconds 
}); 

這將使您的服務器請求每5秒鐘,堅持不管你發回的元素與結果編號爲rowcounter,例如

<p>There are <span id='rowcounter'>xx</span> rows in the DB.</p> 
+0

這看起來對我來說是最好的解決方案。謝謝你的建議! – ethicalhack3r 2010-11-17 11:16:46

+0

你把什麼放在getrows.php文件?是否需要有任何標籤爲rowcounter或任何HTML標籤? – charlie 2013-09-27 12:03:08

+0

@charlie否:您只需返回一個文本字符串。不需要HTML或JSON(儘管您可以選擇這樣做,jQuery將相應地解析它)。 – Phrogz 2013-09-27 13:09:59

0

如果你將有大量遊客,最好是你的行數存儲與由cron運行獨立的腳本靜態文件(或無限循環在服務器上運行腳本)。然後用JS顯示這個靜態文件的編號,就像Phrogz建議的那樣。否則,您可以非常快地超出mysql連接限制。

相關問題