![](/img/trans.png)
[英]How to force a php database query reload every 5sec without reloading page
[英]How to check an IF statement every 5sec in PHP?
我有一个li
,里面有一个div class="reload"
,其中包含一些应该每10秒重新加载一次的内容。
<li class="b1">
<div class="reload">
</div>
</li><!--col-->
因此,我有一个脚本可以做到这一点。
<script type="text/javascript">
$('.b1').children('.reload').load('php/reload/reload.php'); // load the content at start
window.setInterval(function(e) {
$('.b1').children('.reload').load('php/reload/reload.php'); // reload the content every 10 sec
}, 10000);
在reload.php中,我从数据库中获取了一些内容。 看起来像这样
<?php
// login info
require("../../connection_to_database_login.php");
// My query
$result = mysqli_query($l,'SELECT * FROM abcd WHERE efg=1 LIMIT 1');
// include some stuff
$r = mysqli_fetch_row($result);for ($p = 0; $p < $r[4]; ++$p){include("../some/stuff_$p.php");};
// include a random picture script or just load a picture
if ($r[4] == 0){include ('getRandPic.php');}
else {echo ('<img src="images/picture.png" />');}
?>
到目前为止,一切都很好。
getRandPic.php文件..从文件夹中选择一张随机图片
<?php
$img_dir = "images/images";
$images = scandir($img_dir);
$html = array();
foreach($images as $img) {
if($img === '.' || $img === '..') {continue;}
if ( (preg_match('/.jpg/',$img)) || (preg_match('/.gif/',$img)) || (preg_match('/.tiff/',$img)) || (preg_match('/.png/',$img)) ) {
$html[] .= '<img class="img-responsive" src="'.$img_dir.$img.'" />';
}
else { continue; }
};
echo $html[rand(0,6)];
?>
这样就可以了。
但问题是,我想每5秒检查一次它是否“包含随机图片脚本或仅加载图片” 。
因此,我需要每5秒检查一次"if ($r[4] == 0)"
。
所以我的问题是:还有其他方法吗?
正如您在评论中问的那样...这仅是一个粗略的指南。 您将必须根据本指南开发和编写自己的代码。
步骤1a: 可选
从您的网页向服务器发出ajax调用。 获取图像文件名。
步骤1b:
在服务器端的php文件中执行数据库操作。
假设您有一个表imageTable
和列名images
那么您将使用查询SELECT images FROM imageTable
从数据库中读取
您将不得不更改查询,向其添加条件(例如,带有动物标签和可爱标签的所有图像),如果要限制要随机化的文件数,则也必须添加该条件。
第2步:
从数据库中读取数据后,就像已经做的那样,读取所有图像名称并将其以json
格式( json_encode )放置。 我个人更喜欢json。 如果愿意,还可以用简单字符串返回所有名称,其中名称之间用逗号分隔。
第三步:
将您的回复存储在JS中。
var imagesArray = new Array();
$.ajax({
type: 'post',
url: pathtophpfile,
success: function(htmll) {
// get object with all data
imagesArray= JSON.parse(htmll);
},
});
第四步:
一旦将其包含在名为imagesArray
的js对象中,请使用setInetval每5秒执行一次任务。 读取一个从0到imagesArray
长度的随机值,并更改图像标签的来源<img class="img-responsive" src="+ randomimage +" />
定期更新程序将完成您的任务。 使用ajax框架,它将减轻服务器端的数据库连接负担。 看看它。 这是完成任务的简单好方法。
http://prototypejs.org/doc/latest/ajax/Ajax/PeriodicalUpdater/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.