Ajax通知系统-使用最新的notification_id


Ajax Notification system - using latest notification_id

所以我的大部分系统都在工作,我被困在最后一个位

GET正在使用它从while循环中获得的相同的notification_id,因此它不断地根据该id一遍又一遍地搜索新记录。

一样……

jquery....4862996 (line 4)
GET http://viewajax.php?notification_id=43&_=1405814864693

jquery....4862996 (line 4)
GET http://viewajax.php?notification_id=43&_=1405814864694

我要做的是搜索第一个notification_id从while循环发送到服务器端viewjax .php,看看是否有一个新的记录,如果有插入到它的div,(它目前做的),但然后使用相同的新notification_id从服务器上的下一个ajax周期的新记录。我尝试了所有方法,问了很多问题,我在网上四处寻找可能的解决方案,但都无济于事。任何帮助都将非常感激,我会永远爱你。

AJAX

<?  
$user1_id=$_SESSION['id'];
$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=mysqli_fetch_array($chant)){
            ?>
             <script type="text/javascript">
function loadIt() {
  var notification_id=<?php echo $notification['notification_id'] ;?>
$.ajax({
type: "GET",
url: "viewajax.php?notification_id="+notification_id,   
dataType:"json",
cache: false,
success: function(data){
 $("#notif_actual_text-"+notification_id).prepend('<div class="notif_ui"><div class="notif_text"><div  id="notif_actual_text-'+data['notification_id']+'" class="notif_actual_text"><img border='"1'" src='"userimages/cropped'+data['notification_triggeredby']+'.jpg'" onerror=this.src='"userimages/no_profile_img.jpeg'" width='"40'" height='"40'" ><br /><a href="'+data['notification_id']+'">'+data['notification_content']+' </a><br />'+data['notification_time']+'<br /></div></div></div></div>');
 i = parseInt($("#mes").text()); $("#mes").text((i+data.num)); 
}
});
}
setInterval(loadIt, 10000);                        
          </script>

<? }}?>

VIEWAJAX.php

if(isset($_GET['notification_id'])){
$id= mysqli_real_escape_string($mysqli,$_GET['notification_id']);
$user1_id= $_SESSION['id'];
$json = array();
$com=mysqli_query($mysqli,"select notification_id,notification_content,notification_time,notification_triggeredby from notifications where notification_id > '$id' AND notification_status='1' ");
echo mysqli_error($mysqli);
$num = mysqli_num_rows($com);
if($num>0){
    $json['num'] = $num;
}else{
    $json['num'] = 0;
}
$resultArr = mysqli_fetch_array($com);
$json['notification_id'] = $resultArr['notification_id'];
$json['notification_content'] = $resultArr['notification_content'];
$json['notification_triggeredby'] = $resultArr['notification_triggeredby'];
$json['notification_time'] = $resultArr['notification_time'];
mysqli_free_result($com);
echo json_encode($json);
}

编辑

PHP SOURCE

{"num":0,"notification_id":null,"notification_content":null,"notification_triggeredby":null,"notification_time":null}
AJAX源

  <script type="text/javascript">
function loadIt() {

  var notification_id=44
$.ajax({
type: "GET",
url: "viewajax.php?notification_id="+notification_id,   
dataType:"json",
cache: false,
success: function(data){
 $("#notif_actual_text-"+notification_id).prepend('<div class="notif_ui"><div class="notif_text"><div  id="notif_actual_text-'+data['notification_id']+'" class="notif_actual_text"><img border='"1'" src='"userimages/cropped'+data['notification_triggeredby']+'.jpg'" onerror=this.src='"userimages/no_profile_img.jpeg'" width='"40'" height='"40'" ><br /><a href="'+data['notification_id']+'">'+data['notification_content']+' </a><br />'+data['notification_time']+'<br /></div></div></div></div>');
 i = parseInt($("#mes").text()); $("#mes").text((i+data.num)); 
}
});
}
setInterval(loadIt, 10000);              

          </script>

为什么不在php部分检索后将"notification_status"更新为0呢?那么它就不会再被取回了。