Julio Ensutias
Julio Ensutias

Reputation: 122

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?

Upvotes: 0

Views: 1490

Answers (1)

Jarek.D
Jarek.D

Reputation: 1294

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.

Upvotes: 1

Related Questions