实时更新 MySQL 数据
Posted
技术标签:
【中文标题】实时更新 MySQL 数据【英文标题】:Live update MySQL Data 【发布时间】:2014-09-15 12:41:01 【问题描述】:我有以下代码,它工作得很好,我只是想将它转换为实时,因此它每 10 秒左右更新一次而不刷新页面,我猜我需要使用 AJAX 或 Jquery,但我缺乏如何做到这一点的知识。
=====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']."°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); ?>
【问题讨论】:
<meta refresh
:) 或 learn.jquery.com/ajax
jQuery AJAX 是世界上最简单的事情 :) 检查一下。 api.jquery.com/jquery.ajax
$.load();
另外,仅供参考。可能升级为使用 PDO 进行连接。这是公认的做法。
@PatrickEaton 请问什么是PDO?
【参考方案1】:
搞定了,谢谢大家的帮助。
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'] . "°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);
?>
数据的存放位置
<div id="station_data"></div>
【讨论】:
这是一个可行的解决方案。您是否在大型模型上测试过它,您是否尝试在多台 PC 上运行。我通过 3000 个连接获得了 20PC,而我的服务器 CPU 正在 100% 工作【参考方案2】:您可以通过双击从 div 进行输入,然后通过 jquery 获取此输入值:
$().val;
然后使用 ajax 将此值发送到 php:
$.ajax(
url: 'url_to_php_which_update_mysql',
data: 'data': 'value_from_input',
cache: false,
success: function(response)
$(input).val(response);
);
在 php 文件中你需要在数据库中上传 $_GET['data']
【讨论】:
感谢 Masiama,您能否详细说明所需的代码? 如何更改或转换现有代码以使其与 AJAX 请求一起使用? @Sam 页面上有文本框吗? 不,目前我只是将结果回显到 中,我应该将其更改为输入并这样做吗? 你需要为每个 和你提供唯一的 ID $('this_id').val();获得价值,然后使用我的答案中的 ajax。以上是关于实时更新 MySQL 数据的主要内容,如果未能解决你的问题,请参考以下文章