2010-11-17 108 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连接限制。

相关问题