简体   繁体   中英

Refresh PHP Page when data in Database Updated

I want my client side web to auto-refresh when data in my Database updated, when adding or deleting data I have succeeded however when the data changed, it still fails.

This is my code for checking data from database:

<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;

What should I change to be automatically refreshed if every data in the table is changed?

You can use trigger that will insert some info about each table update in another table, and then just query the num rows on 'changes' table in a similar way you check for new ones here:

DELIMITER //
CREATE TRIGGER table_update_trigger AFTER UPDATE ON table
  FOR EACH ROW BEGIN
    INSERT INTO table_history
    (
      change
    )

    (
      NEW.some_value,

    );
  END
//

The advantage of this solution is you don't need to introduce/rely on/maintain any other db system like Redis and the checking code is not responsible for keeping and updating any counters and queries for updates, inserts and deletes in a similar fashion. Also you might extend the table_history table to log all the fields you are interested in in terms of tracking changes and end up having useful changelog for the purpose of the application.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM