【问题标题】:Ajax/php getting newest data notificationAjax/php 获取最新数据通知
【发布时间】:2014-07-13 13:07:01
【问题描述】:

我在获取最新数据时遇到了一点问题。我想要的只是查找数据库中是否有任何新数据并将记录数打印回我的页面。我有 ajax 工作,它有它发送到 php.ini 的最后一个 notification_id。我只需要让 php 选择任何新数据,发回并打印出来。

我还没有尝试过轮询,但当我完成这项工作并更好地理解它时会进行调查。

<?  $call="SELECT * FROM notifications WHERE notification_targetuser='$user1_id' AND notification_status=1 ORDER BY notification_id DESC LIMIT 1";
        $chant=mysqli_query($mysqli,$call) or die(mysqli_error($mysqli));
            while($notification_id=mysqli_fetch_array($chant))
            {
                ?>
            <script type="text/javascript">
setInterval(function(){


  var notification_id="<?php echo $notification_id['notification_id'] ;?>"

$.ajax({
type: "GET",
url: "viewajax.php?notification_id="+notification_id,   
dataType:"json",
cache: false,
success: function(data){
$(".mess"+notification_id).prepend("<span class'mess' id='mes'>"+response['notification_id']+"</span>");

}
});
},20000);

</script>
<? }?>

回声'';

PHP viewajax.php - 将其更改为 JSON - 但在响应中获得 {"notification_id":null}

   <?php
session_start();
 include"database.php";

if(isset($_GET['notification_id']))
{
$id=$_GET['notification_id'];
$user1_id=$_SESSION['id'];
$json = array();
$com=mysqli_query($mysqli,"select notification_id from notifications where notification_id>'$id' AND notification_targetuser='$user1_id' AND notification_status=1");

$resultArr = mysqli_fetch_array($com);
$json['notification_id'] = $resultArr['notification_id'];
mysqli_free_result($com);


echo json_encode($json);
 }?>

【问题讨论】:

  • 尝试在没有json_encode 的情况下回显$json 变量,以检查notification_id 是否返回任何id 或仍然为空。有时&lt;?php 有效,但&lt;? 无效
  • 我在响应中得到 Array。

标签: javascript php ajax mysqli polling


【解决方案1】:

如果您想要新数据,为什么不直接使用notification_id &gt; '$id' 而不是notification_id='$id'

我假设notification_id 是一个整数索引列,$id 是收到的最后一个 id 前端。

【讨论】:

  • 好吧试过了,我把 php 代码改成 JSON_ENCODE,在 firebug 中返回 {"notification_id":null} 的响应
  • 这意味着你要么得到一个空的结果集,要么你的查询有问题。你能在查询之后添加echo mysqli_error($mysqli);,在mysqli_fetch_array 之后添加var_dump($resultArr);吗?还要确保有一个大于您发送请求的 notification_id。
  • 两者都添加并得到了 NULL 数组,是的,每次搜索都有一个更大的值。
  • 好吧,我到了某个地方,现在得到了以下array(2) { [0]=&gt; string(4) "3299" ["notification_id"]=&gt; string(4) "3299" } {"notification_id":"3299"} 我只需要编辑 php 以打印出新行数并将其作为响应发送回前端打印和然后进入分配的div。
  • 好的,我已经修好了。一点调试和帮助帮助我弄清楚了。非常感谢你们!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
  • 2014-03-30
相关资源
最近更新 更多