Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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); ?>
like image 299
Sam Avatar asked Jul 24 '14 05:07

Sam


1 Answers

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>
like image 92
Sam Avatar answered Sep 28 '22 16:09

Sam