我想开发一个连接到MySQL数据库(来自服务器)的动态页面,并实时显示结果。到目前为止,我设法从我的数据库中获取数据并显示图表。但是,我无法实时做到这一点。
我有一个名为test的数据库表,有2列。 ' ID'和'年龄'
id age
1 45
2 41
3 09
......
60 11
我想逐个从数据库中获取数据并将其绘制在图表中,我的意思是首先获取45并将其绘制在图表中,然后再次获取41并将其添加到图表中,使用45等等。然后当新的数据点出现时,旧的数据将会移动。它将一直持续到完成提取为止。
<?php
include("md.php");
$arr = array(0,0,0,0,0,0,0,0,0);
$con = mysqli_connect('127.0.0.1','user2','123','test');
$select="select age from tab";
$res = mysqli_query($con, $select);
$i=0;
while ($row=$res->fetch_assoc()) {
$arr=array_slice($arr,1,8);
$arr[]=array($i++, (int)$row['age']);
echo json_encode($arr)."<br>";
}
?>
我得到的输出如下=
[0,0,0,0,0,0,0,0,0,[0,45]]
[0,0,0,0,0,0,0,0,[0,45],[1,41]]
[0,0,0,0,0,0,0,[0,45],[1,41],[2,11]]
[0,0,0,0,0,0,[0,45],[1,41],[2,11],[3,21]]
[0,0,0,0,0,[0,45],[1,41],[2,11],[3,21],[4,44]]
.............................
[[1,41],[2,11],[3,21],[4,44],[5,13],[6,15],[7,12],[8,7],[9,14],[10,11]]
........................
[[41,4],[42,11],[43,1],[44,54],[45,13],[46,15],[47,2],[48,7],[49,14],[50,61]]
然后,当我绘制数据时,它只采用最后10个值。我想逐个从图表中获取数据
<script type="text/javascript">
var data=[];
function f(){
data= <?php echo json_encode($arr) ?>;
}
var options={
series: {
lines: {
show: true,
lineWidth: 2,
},
points:{
show: true
}
},
};
$(document).ready(function () {
f();
var dataset=[
{
label: "Data",
data: data,
points: {
symbol: true
}
}
];
$.plot($("#flot-container"), dataset , options);
function update() {
f();
data.shift();
$.plot($("#flot-container"), dataset, options);
setTimeout(update, 5000);
}
update();
});
</script>
我想要输出AS
我该如何执行?我在哪里做错了?请帮忙。