如何找到。是否插入了新记录?

时间:2011-08-16 12:55:32

标签: php jquery mysql ajax

我很难找到任何新记录插入表格。

我的问题

我正在开发Penny拍卖网站。在我的网站中,我每秒使用JQuery更新客户端视图ajax.last bidder用户名,avater,价格和许多东西都更新。但是当我出价时,我想对特定产品实时应用flash效果{{3} }。我尝试了以下Mysql查询来查找是否有任何最后一次出价。

  SELECT   CASE  WHEN  COUNT(*)=0 THEN 'N' WHEN  COUNT(*) > '0' THEN 'Y'
   END AS is_bid  FROM table_bid_history WHERE product_id = '$value' AND 
   ( date_time BETWEEN DATE_SUB(NOW(), INTERVAL 1 SECOND) AND  NOW()  )

基本上,我将最后一个投标人详细信息存储在table_bid_history表中,时间戳列为 date_time 。我每秒都向服务器端发送ajax请求,以使用递归函数获取最后一次更新。所以我的想法是减去1秒检查正确的时间所以我使用(date_time BETWEEN DATE_SUB(NOW(),INTERVAL 1 SECOND)和NOW())并且它正常工作。但在某些情况下,延迟的ajax轮询会使这个想法失败,这意味着ajax请求花费的时间超过1秒,所以我无法从服务器获得正确的结果。如果我使 INTERVAL 2 SECOND ,那么它会给出 Y 两次。所以我很困惑在这种情况下该怎么做。

请帮我把最后一项活动放在桌子上。他们是怎么做的。任何想法都将不胜感激!

提前致谢

1 个答案:

答案 0 :(得分:2)

不是查询最后一秒是否有出价,而是查询自上次已知出价以来是否有任何新出价。因此,在您的jQuery代码中,存储您知道的最后一个出价的date_time。然后,通过AJAX,查看您的table_bid_history中是否有任何出价比jQuery脚本中存储的date_timedate_time。如果有,则闪存效果(当然,存储较新的date_time以便稍后查询)。

PS:您可能想要查看长轮询。对于资源而言,这可能比每秒疯狂地重新检查更好。