0

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

通知表 在此处输入图像描述

我这里有一个代码,可以让所有用户通知

    //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 语法是 ymd h:i:s 或 "2012-05-06 17:11:18"

4

3 回答 3

0

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

"SELECT *
FROM notifications
WHERE tagged_by = "12042905" and action = \"unread\"
LIMIT 1";
于 2012-05-06T10:37:59.423 回答
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
于 2012-06-08T08:37:16.873 回答
0

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

同样对于列“操作”,您应该使用 0 和 1 值而不是未读和已读来优化您的数据库。

于 2012-05-06T10:51:47.467 回答