2016-10-04 67 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