如果在最近20秒内在sql上添加新数据,我想追加新数据。
所以我在wall.php页面中使用了以下脚本。
现在在我的server.php文件查询中我创建了
$timestamp = date("Y-m-d H:i:s", time() - 20);
$results = mysqli_query($dbh,"SELECT * FROM comments_lite WHERE qazi_id='1012' AND `date` > '".$timestamp."' ORDER BY date DESC LIMIT 1") or die(mysqli_error($dbh));
我也尝试了哪些不起作用:
WHERE qazi_id='1012' AND `date` >= NOW() - INTERVAL 20 SECOND ORDER BY date DESC LIMIT 1
我的sql日期格式为2015-02-25 19:45:28
但我的查询得到相同的数据,如果我一个接一个地使用$timestamp
,也超过5分钟。
如果帖子发生的时间是20:20:00,我查询的当前时间是 20:20:10,它会显示帖子。但如果我的查询是当前时间 是20:20:30(发布时间超过20秒),它会 没有显示任何东西。
请给我一个解决它的指导"如果在最后20秒内添加到sql上,则附加一次新数据"。
我的完整代码如下:
JS:
<script type="text/javascript" charset="utf-8">
function addmsg(type, msg){
$("#messages").append(
"<div class='msg "+ type +"'>"+ msg +"</div>"
);
}
function waitForMsg(){
$.ajax({
type: "GET",
url: "/server/server.php",
async: true,
cache: false,
timeout:50000,
success: function(data){
addmsg("new", data);
setTimeout(
waitForMsg,
1000
);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
setTimeout(
waitForMsg,
15000);
}
});
};
$(document).ready(function(){
waitForMsg();
});
</script>
Server.php
include("../db.php");
global $dbh;
header('Content-Type: application/json; charset=utf-8');
while (true) {
//fetch data
$timestamp = date("Y-m-d H:i:s", time() - 20);
$results = mysqli_query($dbh,"SELECT * FROM comments_lite WHERE qazi_id='1012' AND `date` > '".$timestamp."' ORDER BY date DESC LIMIT 1") or die(mysqli_error($dbh));
$rows = mysqli_fetch_assoc($results);
$data = $rows['description'];
//has data
if (!empty($data)) {
echo json_encode($data);
flush();
exit(0);
}
sleep(5);
}
答案 0 :(得分:0)
尝试这种方式:
$datetime = date('Y-m-d H:i:s', strtotime('-15 second'));
$results = mysqli_query($dbh,"SELECT * FROM comment WHERE qazi_id='1012' AND date >= '$datetime' ORDER BY date DESC LIMIT 1") or die(mysqli_error($dbh));