【问题标题】:Show different database record every 24 hours每 24 小时显示不同的数据库记录
【发布时间】:2015-05-29 14:35:59
【问题描述】:

我正在使用 HTML5 和 PHP 构建一个简单的应用程序,我需要每天显示不同的报价。所以我有一个包含所有 365 条引用和作者的数据库表,但我似乎找不到每 24 小时显示不同数据库记录的方法。我对编程相当陌生,并在整个互联网上搜索了答案,但找不到与此类似的任何东西。

所以我有我的 html 和 php 代码来连接到数据库并显示最新记录。如何每 24 小时向用户显示另一个数据库行?

这就是我的代码现在的样子:

<?php

$con=mysql_connect('localhost','xxxx','xxxx');

if(!$con)
{
    die ("Failed to connect: " . mysql_error() ) ; 
}
mysql_select_db("xxxx",$con);

$sql = "SELECT * FROM quotes LIMIT 1" ; 
$myData=mysql_query($sql,$con) ;

while($record = mysql_fetch_array($myData)) {

  echo  "<h1>" . $record['quote'] . "</h1>";
  echo  "<br><p> - " . $record['author'] . " - </p>";

  }

mysql_close($con);

?>

提前谢谢大家!

【问题讨论】:

  • 一库多表有什么问题?
  • 我建议您以某种方式保存今天的“索引”,然后您必须编写代码来确定是否需要新报价,增加该索引并将查询更改为:@ 987654326@
  • stop using mysql_* functions。它们不再被维护并且是officially deprecated。改为了解 prepared statements,并考虑使用 PDO,it's not as hard as you think。此外,假设您的查询和连接都正常工作,您需要添加错误检查并退出。
  • 我建议将页面被点击的时间与服务器时间进行比较。一种 $current_date=("Ymd") 由服务器上的作业创建(假设在每天 UTC 时间 00:00:01 抛出),然后创建另一个变量 new_date= date("") 和条件 if $new_date > $current date "您的代码更改报价" 并替换 $current_date 值。这只是我如何开始思考的一个快速想法
  • 对了,当你测试我的答案时,不要忘记在页面刷新的时候更改你的电脑的日期,看看一天的想法是如何变化的! (请记住,您只能使用今天、明天和明天之后的日期)。

标签: php html mysql


【解决方案1】:

在您的表中添加一列,名为 e.g. id。遍历表中的所有行并添加从 1 到 365 的值。然后你可以这样做:

$sql = "SELECT * FROM quotes WHERE id = " . date('d');

【讨论】:

  • 谢谢,这很好用,但问题是我想要一年中的每一天都有另一个报价,使用这种方法我只能在每个月的每一天都有一个新的报价。第二个月它将再次以“1”开始
  • 没关系,我使用 date('z') (+1) 返回一年中的哪一天,谢谢!
【解决方案2】:

您可以每 86400 秒(一天中的秒数)刷新一次页面,当页面自动重新加载时使用 PHP 获取当前日期并使用日期显示当天的想法。

下一个示例每 3 秒刷新一次页面,使用 PHP 获取当前日期并显示当天的想法(我只为今天 5/29、明天 5/30 和明天 5/31 之后添加了 3 个想法)。在您的 www 目录中创建一个文本文件,将其命名为“refresh_every_24h.php”并在您的浏览器中运行它:

<?php
$database = array( "5/29" => "Jon Skeet : «I'm the king!»" ,
                   "5/30" => "Jester : «I know more assembly than you»" ,
                   "5/31" => "Tómax : «I'm here to make points, baby»" );
?>
<!--
NEXT "META" REFRESHES PAGE EVERY 3 SECONDS, YOU CHANGE IT BY 86400 (SECONDS PER DAY).
-->
<meta http-equiv="refresh" content="3;URL=http://localhost:8099/refresh_every_24h.php" />
<html>
  <head>
    <title></title>
  </head>
  <body>
    Thought of the day:
    <br/>
<?php
$arr = getdate( time() ); // GET CURRENT SYSTEM TIME.
echo $database[ strval( $arr[ "mon" ] ) . // USE MONTH AND
                "/" .                     // DAY TO FIND
                strval( $arr[ "mday" ] )  // THOUGHT OF THE DAY.
              ];
?>
  </body>
</html>

要更改任何其他文件名,只需注意在下一行更改它,它被配置为在 MY 本地主机上运行,​​您也可以为自己更改主机:

<meta http-equiv="refresh" content="3;URL=http://localhost:8099/refresh_every_24h.php" />

不要忘记在页面刷新时更改计算机的日期,看看当天的想法是如何变化的! (请记住,在此示例中,您只能使用今天、明天和明天之后的日期)。

【讨论】:

    猜你喜欢
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2016-08-19
    • 1970-01-01
    • 2012-02-17
    • 2016-09-03
    • 2015-04-19
    相关资源
    最近更新 更多