gpt4 book ai didi

php - 使用 Ajax 实时更改数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:05:55 24 4
gpt4 key购买 nike

我正在构建一个网站,将其 Mysql 数据库中的内容打印到页面以供用户查看。数据库的内容将不断添加,我想在页面上实时显示这些更改,而无需用户重新加载。我现在正在使用 PHP 将数据库的内容回显到页面上,效果很好,只是要看到任何新的更改,必须重新加载页面。所以我的问题是,如何使页面实时更新?我猜这会涉及到 Ajax,但我对 javascript 很陌生......

你们介意给我指明正确的方向吗?

这是我的数据库的样子:

id      author           body
----------------------------------------
1 jim sample content
2 bob more content
3 fred some more!

我正在使用以下 PHP 代码将上述数据打印到网页:

$query = mysql_query("SELECT * FROM log order by id desc") or die(mysql_error());
while($row = mysql_fetch_array($query)) :
echo $row['author'];
echo $row['body'];
endwhile;

谢谢!

最佳答案

如果你想使用jQuery库,你可以使用我写的这个例子。起初它非常令人生畏,但我会尽我所能解释。

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var shownIds = new Array();

setInterval(function(){
$.get("test2.php", function(data){
data = $.parseJSON(data);

for(i = 0; i < data.length; i++){
if($.inArray(data[i]["id"], shownIds) == -1){
$("#log").append("id: " + data[i]["id"] + "<br />");
shownIds.push(data[i]["id"]);
}
}
});
}, 2000);
});
</script>
</head>
<body>
<div id="log">

</div>
</body>
</html>

test2.php

<?php
$result[0]["id"] = "id1";
$result[1]["id"] = "id2";

echo json_encode($result);
?>

基本上,它会检查文档是否准备就绪以及所有内容是否已加载。之后创建一个名为 shownIds 的新数组。此变量将保留 id(来自您的 sql 表的主索引)以确保它不会两次显示相同的数据。SetInterval 只是让它每两秒调用一次该函数。$.get 这个函数获取 test2.php 的页面源,里面有 json 数据。它用 $.parseJSON 解析它,然后循环遍历每个。为确保没有两行显示两次,它检查 $.inArray 以查看 id 是否已在 shownIds 数组中。如果不是,它将数据(现在只是 id)附加到唯一的 div 上。然后它将 id 插入 shownIds 数组,这样它就不会再次显示。

test2.php 创建一个数组。设置 id,并以 json 格式回显数据(不需要但保持组织有序)

关于php - 使用 Ajax 实时更改数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8548130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com