2016-10-04 65 views
0

的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

我可以在这里看到的问题是如果页面重新加载,则定时器将重置。

如果你需要脚本运行每小时,那么你真的应该看看让它运行使用cron。

0 * * * * /path/to/php /full/path/to/your/php/file.php