0

我如何才能检测 Mysql 排行榜的变化?例如,如果用户向前移动另一个文件,则文件可能会回显一条消息,例如“x 移动了一个位置,现在在 y 之前”

4

1 回答 1

2

在没有任何现有代码的情况下,我能做的唯一建议是在排行榜表中创建一个列来保存用户以前的位置。每当用户的位置更新为新值时,同时将先前的位置存储在该列中。

UPDATE leaderboard SET oldposition = position, position = $new_position WHERE userid = $userid;

您还可以创建一个列,其中包含一个布尔值,指示用户是否已被告知此更改。第一次显示消息时,布尔值设置为 1。之后,您将不再需要为用户显示它,直到它发生变化。

UPDATE leaderboard
  SET 
   oldposition = position, 
   position = $new_position, 
   notified = 0
WHERE userid = $userid;

显示新更改后,将其标记为已通知,以便后续网页浏览不会显示相同的消息。

UPDATE leaderboard SET notified = 1 WHERE userid = $userid;
于 2011-12-18T14:17:38.153 回答