【问题标题】:Display a random quote from MySQL without repeating显示来自 MySQL 的随机引用而不重复
【发布时间】:2011-10-11 01:36:25
【问题描述】:

我正在尝试制作报价页面。我希望它在每次页面加载时显示一个随机引用,但也有一个“下一个引用”按钮,它可以更改为另一个随机引用而不重复,除非你已经浏览了所有引用。我已经尝试了几天,并且在页面加载时加载随机报价后没有任何进展。如果有人可以请帮助我。谢谢。

【问题讨论】:

  • 有多少个引号?这是在网页中加载吗?您使用什么语言和/或框架(前端和后端)
  • 会有大约 100 条报价。我对网络开发有点陌生。我打算使用 mysql 作为报价数据库。然后只是html和php。我也对 javascript 持开放态度。

标签: mysql sql random repeat


【解决方案1】:

有几种方法可以做到这一点。

  1. 标记用户已经看过的内容,然后在执行 SELECT 时过滤掉用户已经看过的内容。

  2. 预先创建随机订单,然后跟踪用户最后查看的报价。例如,引用#8。然后你下次显示报价#9。是否是

【讨论】:

  • 我正在考虑用“WHERE id NOT IN”做一些类似的事情,但是你如何跟踪用户已经看到的引用。我还是 php/mysql 的新手。也许对初学者来说是一项艰巨的任务?如果有人可以制作一个工作样本,那就太好了。不知道那会做多少工作。感谢您的回复。
  • 每个用户都应该有自己的唯一 ID。每个报价都应该有它自己的唯一 ID。创建一个包含用户 ID 和报价 ID 的表,然后加入它们。 SELECT quote FROM quotes LEFT JOIN seen_quotes ON quotes.quote_id=seen_quotes.quote_id AND seen_quotes.user_id=# WHERE seen_quotes.quote_id IS NULL ORDER BY RAND() LIMIT 1
【解决方案2】:

假设网页和引号数量有限,我会在页面加载时将它们全部加载到 html 中,然后用滑块循环它们。

您还可以做的,只是将一个随机加载到页面中,然后通过 xml 或 json 提供其余部分。这样,如果用户没有 javascript(尽管很少见)或屏幕阅读器(残疾用户可访问),他们将只能听到/看到一个引用,然后使用 javascript,您可以加载其余的引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多