php和ajax中的通知

时间:2012-05-06 10:02:43

标签: php jquery mysql sql ajax

如何整理获取用户的新通知?

通知表 enter image description here

我这里有一个代码可以获取所有用户的通知

    //PHP PART
    "SELECT *
     FROM notifications
     WHERE tagged_by = "12042905" and action = \"unread\"";

    //JAVASCRIPT PART
    function n() {
        $.ajax({
           url: "notifications.php",
           dataType: "json",
           success: function(responseJSON) {
             $("div").html(reponseJSON[0].notify_id)
           }
        })
    }

    setInterval("n()", 1000)

但它每秒都会给我所有通知。现在我的问题是我只想在通知表中获取新添加的行,我该怎么做?我怎样才能一次输出一个?我应该在jQuery中使用.append()或.insert()吗?

  

注意:date_notify语法为y-m-d h:i:s或“2012-05-06 17:11:18”

3 个答案:

答案 0 :(得分:0)

您可以简单地为MySQL查询添加限制。

"SELECT *
FROM notifications
WHERE tagged_by = "12042905" and action = \"unread\"
LIMIT 1";

答案 1 :(得分:0)

您的问题是,在发送通知后,您没有将“操作”的值从“未读”更新为“已读”。
因此解决方案很简单:在每次拉取(选择查询)之后,您应该更新刚刚选择的所有行。

对于列'action',您应该使用0和1值而不是未读和读取来优化数据库。

答案 2 :(得分:0)

  Your problem is, you have a timer that keep on calling your function n() every 1sec at a time
  so the output will repeat until timer keep on running. , so to avoid that problem?

  1. The "Div" handler that will hold your ouput will empty first!
     ex.
        $("div").empty();
  2. try to use append()

     ex. $("div").append(reponseJSON[0].notify_id);

  Hope this will help! tnx