PHP - 每周显示1个随机记录

时间:2010-04-26 09:05:49

标签: php mysql date

我想根据周显示数据库中的1条随机记录。

我需要确定它是否为新的,如果是新的一周,则选择记录并显示新记录。

我想我可以使用一周中的一天来生成新记录,无论哪种方式都可行。

我真的很难概念化我将如何存储记录ID,而当有人在同一天再次访问或刷新页面时,不会选择新记录ID。

有什么想法吗?如果我不够清楚,请告诉我。

此外,我无法访问cron作业,因为它是共享托管。

3 个答案:

答案 0 :(得分:2)

创建一个包含要显示的行的id的表,以及一个说明何时插入该行的日期时间/时间戳列。然后,您需要做的就是更新id,如果它已插入超过一周。不幸的是,您必须对每个请求进行此检查。如果您不希望这样,您可以创建一个每周运行一次的cron-job并更新表。

答案 1 :(得分:0)

让脚本选择从数据库中记录的随机数,然后将记录的数据放入数据库中的空间。然后让脚本显示数据库中位置的已记录点。这样选择脚本只能作为一个cron作业运行一次。

基本上,脚本A拉出recored并将旧选择的文件替换为旧文件,然后脚本B指向该表条目。如果您无法创建表和条目,只需在文本文件中保存从脚本A中记录的Id,然后将该ID读入显示它的脚本中。

答案 2 :(得分:0)

MySQL的函数RAND()接受整数参数N,该参数用作种子值。这允许在多个请求中获得相同的序列 - 您可以查看http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand中的示例。我会尝试使用像SELECT field_1, field_2, field_3 FROM table_name ORDER BY RAND($time) ASC LIMIT 1之类的东西,其中$time将是本周开始的UNIX时间戳。