php - 如何通过JQuery/Ajax请求返回最新的Mysql条目

标签 php javascript jquery html ajax

我正在尝试通过ajax拉取mysql表的最新条目并将其显示为div内的html内容。我的ajax和php功能正常,唯一的问题是我想查询新条目并在循环内按时间间隔堆叠结果,我遇到了两个问题:让数据表现得像正常情况一样javascript 字符串,并使循环仅返回唯一的条目。

更新.php 文件

$con=mysqli_connect("mydbhost.com","username","password","database_name");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM conversations");
$j = 0;
while($row = mysqli_fetch_array($result))
{
$carray[j] =   $row['comment'];
$j++;
}
$comment = (array_pop($carray));
echo $comment;
echo "<br>";
mysqli_close($con);

JQuery Ajax 请求循环:

$(document).ready(function(e){
  var comment;
  function commentLoop() {
    comment = $('#testdiv').load('update.php');
    $('#testdiv').append(comment);
    setTimeout(commentLoop, 6000);
  }
  commentLoop();

  $(document).focus();
});

最佳答案

问题在于,通过执行SELECT * FROM communications,您会不断请求整个表 - 尽管您只获取最后一个。

您的代码需要记住已加载的评论,并且仅获取比该评论更新的评论。

例如,假设您的主键是增量的,请执行SELECT * FROM communications WHERE convid > ?。将 ? 替换为已加载的最新评论。如果您是第一次加载,只需执行SELECT * FROM对话

您可以将使用请求参数显示的最后一条评论 ID 传递到 update.php 中。另外我建议以 JSON 格式返回数据,这样您就可以返回评论和 id 的集合并轻松解析它

关于php - 如何通过JQuery/Ajax请求返回最新的Mysql条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15914152/

相关文章:

php - 背景中树上的鸟

javascript - jQuery 数据表过滤具有特定类的行

javascript - 带有特殊字符的JS元素标签

PHP MySQLi 在外部连接时出错,但可以从其他来源连接

php - VQMOD 替换不适用于多行搜索

php - 强制 Composer 要求版本 X 和版本 Y 之间的 PHP 版本

javascript - 创建 handlebars.js 子菜单

php - 确定用户是在 php 聊天应用程序中登录还是注销

javascript - 使用 (ES6) 计算属性名称更新嵌套对象

javascript - 如何使用 jQuery 读取外部 html 文件并将其存储到字符串变量?显示错误