$data = mysql_query("SELECT * FROM phpbb_posts ORDER BY post_id DESC LIMIT 4")
or die(mysql_error());
上面是我的代码,我遇到了Limit部分的问题。
当我第一次设置它,似乎一切都完美,但我可以回来了几个小时,并在页面再看看和不同数量的记录可以显示,即使代码是完全相同的。MYSQL限制不一致
任何想法如何解决这个问题?
$data = mysql_query("SELECT * FROM phpbb_posts ORDER BY post_id DESC LIMIT 4")
or die(mysql_error());
上面是我的代码,我遇到了Limit部分的问题。
当我第一次设置它,似乎一切都完美,但我可以回来了几个小时,并在页面再看看和不同数量的记录可以显示,即使代码是完全相同的。MYSQL限制不一致
任何想法如何解决这个问题?
数据不同,因为自上次检查页面以来发布的帖子越多。您在post_id
订购,其中最高价值将是最近的帖子。
保留以前记录的最简单方法是缓存数据 - 存储它。但是,然后缓存需要知道何时刷新缓存 - 否则它永远不会改变。
如果有日期/时间列,您可以使用它来在应用LIMIT之前过滤结果。但它必须足够宽才能获得至少四条记录。与日期相同的问题需要考虑 - 在某些时候,您希望这些日期发生变化,或者页面提供的数据永远不会改变。
您不指定返回多少记录与您有关。 LIMIT应该返回4条记录的最大值,如果没有至少4条记录会被您的查询返回,则返回最少值。如果你有超过4条记录返回,那么你有问题。
你是指“不同数量的记录”是什么意思?多少? 3? 5? 0? – 2010-08-22 18:07:18
我们需要查看代码的其余部分。该查询将始终返回四个或更少的结果;你的问题不在这里。 – Borealid 2010-08-22 18:07:45