我有一个非常基本的问题,但不知道该怎么做。如果 mysql 表中的行数增加,我想刷新页面。我尝试了一些不同的方法,例如在表中添加一个单独的列,如果行数和该值相等,则值为 (id + 1) 进行刷新。这有效,但随后它开始每 5 秒刷新一次,因为该语句一直评估为真。我真正想要的只是一个简单的
if($num_rows changes){
// do this
}
任何和所有的帮助都会非常感谢
我有一个非常基本的问题,但不知道该怎么做。如果 mysql 表中的行数增加,我想刷新页面。我尝试了一些不同的方法,例如在表中添加一个单独的列,如果行数和该值相等,则值为 (id + 1) 进行刷新。这有效,但随后它开始每 5 秒刷新一次,因为该语句一直评估为真。我真正想要的只是一个简单的
if($num_rows changes){
// do this
}
任何和所有的帮助都会非常感谢
要检查 INSERT、DELETE、UPDATE 或 REPLACE 查询的受影响行数,您可以使用
$db->affected_rows();
如果您希望将行数与过去的行数进行比较,则必须保存以前的行数,可能在会话中。这完全取决于谁执行查询。
要获取表中的总行数:
SELECT COUNT(*) AS `numrows` FROM `table`;
这将起作用:AJAX->PHP->MySQL
$(document).ready(function() {
setInterval("ajaxd()",10000);
});
function ajaxd() {
$.ajax({
type: "GET",
url: "new_rows.php",
success: function(msg){
if (msg.HasNewRows) {
//new rows -> refresh
document.location.reload(true);
}
}
});
}
new_rows.php
<?php
session_start();
//perform query & num_rows() => $new
if ($new > $_SESSION['current']) {
$_SESSION['current'] = $new;
return json_encode(array("HasNewRows"=>true));
}else{#same with false}
?>