gpt4 book ai didi

php - 使用 jquery 仅显示数据库中的最新行

转载 作者:行者123 更新时间:2023-11-29 00:25:51 26 4
gpt4 key购买 nike

我一直在尝试使用 ajax 从数据库中检索新行。就像在 Facebook 聊天中发生的那种事情。我一直在做的是每两秒使用 ajax 从数据库中获取最后十行,并尝试显示用户没有看到的那些。我有两列,id 和 name。我创建了一个有序列表并将每个 li 元素 id 设置为数据库中的 id。每里代表一行。然后我尝试获取最后一个 li 元素的 id,并检查数据库中的 id 是否更大,如果更大,则附加一个包含 id 和名称的新 li。但出于某种原因,它只是每两秒附加整个 10 行。我做错了什么?这是我正在使用的代码。

<ol id="output"><li id="1">test</li></ol>

<script id="source" language="javascript" type="text/javascript">



function reloadw()
{


$.ajax({
url: 'api.php',
data: "",
dataType: 'json',
success: function(rows)
{
for (var i in rows)
{
var row = rows[i];
var lastId = $('ol#output li').attr('id');
var id = row[0];
var vname = row[1];



if(id > lastId){
$('#output').append("<li id="+id+"><b>id: </b>"+id+"<b> name: </b>"+vname+"</li>");
}}
}

});
} setInterval(reloadw,2000);

这是我用来从数据库中检索数据的方法

$result = mysql_query("SELECT * FROM $tableName ORDER BY id");            
$data = array();
for($i=0;$i<=9;$i++){
$row = mysql_fetch_row($result);
$data[] = $row;
}
echo json_encode( $data );

最佳答案

如果您解决了获取数据的问题,那么您遇到的另一个问题是您的 JavaScript 代码。

改变

var lastId = $('ol#output li').attr('id'); //will always fetch the first li's id

var lastId =  $('ol#output li:last').attr('id');

使用您拥有的 lastId 选择代码,它将始终只获取第一个的 id,并且您的比较 id > lastId 将始终为真,除了第一个元素的 id。因此,即使之前已经添加了该记录,您最终还是要追加。

但理想情况下,您应该在服务器上执行此逻辑以仅获取要显示的数据。

关于php - 使用 jquery 仅显示数据库中的最新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18950075/

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