繁体   English   中英

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

[英]How to find.Is new record is inserted or not?

我很难找到是否在表中插入了任何新记录。

我的问题

我正在开发 Penny 拍卖网站。 在我的网站中,我每秒使用 JQuery ajax 更新客户端视图。最后一个投标人的用户名、头像、价格和许多东西都被更新了。但是当出价时,我想在这里应用 ZA39401275DEAB300AA789FB22A 的特定产品效果。 我尝试了以下 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()  )

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

请帮助我获得表格中的最后一项活动。 他们是怎么做的。 任何想法将不胜感激!

提前致谢

不是查询上一秒是否有出价,而是查询自上次已知出价以来是否有任何新出价。 因此,在您的date_time代码中,存储您所知道的最后一次出价的日期时间。 然后,通过 AJAX,查看 table_bid_history 中是否有任何出价的date_time比存储在table_bid_history脚本中的date_time新。 如果有,则 flash 生效(当然,存储较新的date_time以便稍后进行更多查询)。

PS:您可能想研究长轮询。 这可能比每秒疯狂地重新检查更好的资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM