【问题标题】:notifcations in php and ajaxphp 和 ajax 中的通知
【发布时间】:2012-05-06 10:02:42
【问题描述】:

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

通知表

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

    //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"

【问题讨论】:

    标签: php jquery mysql sql ajax


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:
          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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-14
          • 2013-07-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多