我有一个非常基本的问题,但不知道怎么做。我想刷新一个页面,如果行数在mysql表增加。我尝试了一些不同的事情,比如在表中添加一个单独的列,值为(id + 1),如果行数和这个值相等,那么就进行刷新。这是有效的,但是之后它开始每5秒刷新一次,因为语句一直求值为true。我想要的只是一个简单的
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}
?>