随机PHP / MySQL查询每隔几分钟更新一次,而不是刷新

时间:2017-04-07 16:50:19

标签: php mysql random

我在MySQL数据库中有两个表,一个是图像,一个是文本:

表1(图像):

<img src="pngs/000.png">
<img src="pngs/001.png">
<img src="pngs/002.png">
...
<img src="pngs/199.png">

表2(文字):

"This is text 0."
"This is text 1."
"This is text 2."
...
"This is text 1999."

我希望页面显示一个随机图像,以及十行随机文本,每次访问和每次刷新都会更新。

到目前为止,我已经在本地Web Apache服务器上完美地工作了。但是,在线上传时,存在以下几个问题:

  1. 结果每隔~5分钟更新一次新的随机结果,而不是每次刷新。
  2. 不同设备的结果相同,而不是每个实例都是唯一的。
  3. 我目前正在使用以下方法从MySQL数据库中选择一个随机行:

    $query  = 'SELECT * FROM pngs ORDER BY RAND() LIMIT 1';
    

    并在HTML中引用该脚本:

    <div class='img'><?php include('pngs.php');?></div>
    

    更新图像的延迟是否与此实现有关?或者我误解了MySQL / PHP基础设施,应该使用Javascript代替吗?

    我非常感谢有关如何产生所需功能的任何建议。

    *修改

    以下是图片的完整PHP代码。

    <?php
      require_once 'login2.php';
      $conn = new mysqli($hn, $un, $pw, $db);
      if ($conn->connect_error) die($conn->connect_error);
    
      $query  = "SELECT * FROM pngs ORDER BY RAND() LIMIT 1";
      $result = $conn->query($query);
      if (!$result) die($conn->error);
    
      $result->data_seek(1);
      $row = $result->fetch_array(MYSQLI_ASSOC);
      echo '<img src="/pngs/'.$row['png'].'.png">';
    
      $result->close();
      $conn->close();
    ?>
    

    字符串的PHP脚本类似,但使用

    除外
    $query  = "SELECT txt FROM strings WHERE RAND()<=0.011";
    

    正如我所知,这是从大型数据库中选择随机行的更快捷方式。

0 个答案:

没有答案