的index.php
这是我倒计时的主要档案。这是一个简单的倒计时脚本。下一个文件" Select.php "包含倒计时结束后需要运行的代码,我还需要倒计时刷新到当前时间+1小时。最好的办法是,如果可以使用ajax,但如果没有,那么页面每小时刷新一次就可以了。
当我尝试彼此实现此代码时遇到的一个问题是,每次刷新页面时,都会选择数据库中的新行。我需要的是,只有在倒计时完成后,才会选择数据库中的新行。
我尝试过使用cron作业,但我没有设法让它正常工作。 :(
<script>
var CountDownTimer;
CountDownTimer = function(dt, id) {
var _day, _hour, _minute, _second, end, selector, showRemaining, timer;
selector = document.getElementById(id);
end = new Date(dt);
_second = 1000;
_minute = _second * 60;
_hour = _minute * 60;
_day = _hour * 24;
showRemaining = function() {
var days, distance, hours, minutes, now, seconds;
now = new Date();
distance = end - now;
if (distance <= 0) {
CountDownTimer("<?php echo $expire_date; ?> <?php echo $expire_time; ?>:00", "countdown");
return;
}
days = Math.floor(distance / _day);
hours = Math.floor((distance % _day) / _hour);
minutes = Math.floor((distance % _hour) / _minute);
seconds = Math.floor((distance % _minute) / _second);
return selector.innerHTML = minutes + " mins " + seconds + " secs";
};
return timer = setInterval(showRemaining, 1000);
};
CountDownTimer("<?php echo $expire_date; ?> <?php echo $expire_time; ?>:00", "countdown");
</script>
Select.php
以下是完成主文件倒计时后需要运行的代码。
<?php
$servername = "servername";
$username = "username";
$password = "password";
$dbname = "dbname";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM users ORDER BY RAND() LIMIT 1";
$result1 = $conn->query($sql);
if ($result1->num_rows > 0) {
while($row = $result1->fetch_assoc()) {
echo $row["username"];
}
}
?>
答案 0 :(得分:0)
我在这里看到的问题是,如果页面重新加载,那么计时器将重置。
如果你需要每小时运行一次脚本,那么你真的应该考虑使用cron来运行它。
0 * * * * /path/to/php /full/path/to/your/php/file.php