Sam
Sam

Reputation: 185

Live update MySQL Data

I have the following code and it works great, I just want to convert it to live so it updates every 10 seconds or so without a page refresh, I'm guessing I'll need to use AJAX or Jquery but I lack the knowledge on how to do so.

=====VIA <?php include("database.php"); ?>====
<?php
// Create connection
$con=mysqli_connect("ip/host","user","pass","db");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>

====ON THE PAGE====
<? php

$result = mysqli_query($con, "SELECT * FROM sql347511.1 ORDER BY ID DESC LIMIT 1;");

while ($row = mysqli_fetch_array($result)) {
    echo "<div class='infobox_data'>Temperature: ".$row['TEMP']."&deg;C</div>";
    echo "<div class='infobox_data'>Humidity: ".$row['HUMID']."%</div>";
    echo "<div class='infobox_time'>Captured: ".date("g:i:s a F j, Y ", strtotime($row["TIME"]))."</div>";
}

mysqli_close($con); ?>

Upvotes: 5

Views: 18224

Answers (2)

Sam
Sam

Reputation: 185

Got it working, thanks for the help everyone.

Javascript

$(document).ready(function(){    
    loadstation();
});

function loadstation(){
    $("#station_data").load("station.php");
    setTimeout(loadstation, 2000);
}

station.php

<?php
include ("database.php");

$result = mysqli_query($con, "SELECT * FROM sql347511.1 ORDER BY ID DESC LIMIT 1;");

while ($row = mysqli_fetch_array($result))
    {
    echo "<div class='infobox_data' id='infobox_temp'>" . $row['TEMP'] . "&deg;C</div>";
    echo "<div class='infobox_data' id='infobox_humid'>" . $row['HUMID'] . "%</div>";
    echo "<div class='infobox_time'>At " . date("g:i:s a F j, Y ", strtotime($row["TIME"])) . "</div>";
    }

mysqli_close($con);
?>

Where to put the data

<div id="station_data"></div>

Upvotes: 7

user3795616
user3795616

Reputation:

You can make inputs from div on double click and then get this inputs value through jquery:

$().val;

then using ajax send this value to php:

$.ajax({
    url: 'url_to_php_which_update_mysql',
    data: {'data': 'value_from_input'},
    cache: false,
    success: function(response){
        $(input).val(response);
    }
});

And in php file you need to upload $_GET['data'] in Database

Upvotes: 0

Related Questions