PHP / MySQL排行榜和检测变化

时间:2011-12-18 14:08:13

标签: php mysql leaderboard

我怎样才能检测Mysql排行榜中的变化?例如,如果用户向前移动另一个文件,则该文件可以回显出一条消息,例如'x移动了一个地方并且现在位于y'之前

1 个答案:

答案 0 :(得分: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;