首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何每天轮换报价

如何每天轮换报价
EN

Stack Overflow用户
提问于 2012-12-10 03:30:02
回答 3查看 392关注 0票数 0

这不是一个特定于编程的问题,而是一个更一般的问题:

我的数据库里有几句名言。我可以随时添加更多的引用,但想法是这样的:

每天都会显示一个新的报价,第二天会显示下一个报价。当达到报价的“限制”时,将显示第一个报价,允许您始终在您的网站上拥有报价。

我该怎么做呢?

我知道需要有一个检查,如“如果报价是昨天显示,显示新的报价,如果昨天的报价也是数据库中最新的从第一个报价开始”。我完全不知道如何开始,所以一点帮助都是非常感谢的!

我使用的是PHP和MySQL。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-10 03:41:09

代码语言:javascript
复制
function get_daily_quote(){
    $q = floor(time()/86400);  // will produce a number
    $n = 100; // num of quotes - you can count the quotes in the database or something
    $res = mysql_query('SELECT * FROM `quotes` ORDER BY `id` ASC LIMIT '.($q%$n).', 1');
    return mysql_fetch_assoc($res);
}

或者使用pdo而不是mysql的旧函数,但是你明白了……

编辑

只是为了解释一下-- $q总是会从前一天开始递增1。从表中提取报价元组时,$q % $n将是最重要的。我们将按ID排序以使结果保持相同的顺序,ID将是自动递增的主键。这应该能起到作用。

当然,如果您想要性能,您可以将其保存到一个文件中,然后每天运行一次来更新它,因此您不需要查询数据库来获取它。

编辑固定$q

票数 3
EN

Stack Overflow用户

发布于 2012-12-10 03:36:20

我会有数据库中的报价id,例如1-100,然后从数据库中随机选择它使用php函数

代码语言:javascript
复制
rand(1, 100);

当然,您需要将为该日期选择的内容保存在某个位置,可能是另一个表,这样您就可以检查是否为新的一天生成了该表。

票数 0
EN

Stack Overflow用户

发布于 2012-12-10 03:56:00

Galchens awnser应该涵盖它,但如果您添加或删除引号,您将获得两次相同的引号。

一个更好的方法是每天随机抽取一个引号(使用cronjob)

代码语言:javascript
复制
SELECT * FROM Quotes ORDER BY RAND() LIMIT 1

添加2个字段,used和today (枚举0、1或int 1) set today =1表示每天的随机引用set used =1(如果已使用引号)和today quote

一旦不再有未使用的引号,则更新为0;

因为您已经在使用cronjob,所以将结果缓存到一个文件中!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13790924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档