我希望我的客户端网站在我的数据库中的数据更新时自动刷新,当添加或删除数据时我已经成功,但是当数据发生变化时,它仍然会失败。
这是我检查数据库中数据的代码:
<script>
var row1 = "<?php echo $variable; ?>";
var processUpdate = function( response ) {
var x = response;
//console.log(x);
if (row1 != x) {
window.location.reload();
}
}
var checkUpdates = function() {
serverPoll = setInterval(function() {
$.get('check.php', { lastupdate: 1 }, processUpdate, 'html');
}, 1000)
};
$(document).ready(checkUpdates);
</script>
check.php
:
$query = mysqli_query($koneksi, "SELECT * FROM table");
$number = mysqli_num_rows($query);
echo $number;
如果表中的每个数据都被更改,我应该更改哪些内容会自动刷新?
答案 0 :(得分:1)
您可以使用触发器在另一个表中插入有关每个表更新的一些信息,然后只查询“更改”中的num行。以类似的方式在这里检查新表:
DELIMITER //
CREATE TRIGGER table_update_trigger AFTER UPDATE ON table
FOR EACH ROW BEGIN
INSERT INTO table_history
(
change
)
(
NEW.some_value,
);
END
//
此解决方案的优点是您不需要引入/依赖/维护任何其他数据库系统(如Redis),并且检查代码不负责保留和更新任何计数器和查询以进行更新,插入和删除以类似的方式。此外,您可以扩展table_history表以记录您感兴趣的所有字段,以跟踪更改并最终为应用程序提供有用的更改日志。