2016-07-23 205 views
0

我的目標是減去兩次,然後從那裏生成一個登錄檢查器。這段代碼爲什麼會產生空白?

我需要知道的是,如果我已經在幾分鐘內正確減去了兩次。

PHP版本:7.0

時間是使用NOW輸入到DB(),並顯示如(實施例:2016年7月23日15時01分34秒)

出於某種原因,其中,該代碼包含在HTML中,只是空白。

代碼(一切都在代碼中定義的上漲):

<?php 

include ('../includes/connection.php'); 
include ('../scripts/functions.php'); 

$getOnlineAdmins = $handler->prepare('SELECT * FROM Admins WHERE AdminLevel >= :al AND Status= :stat'); 
$statn = 1; 
$aln = 1; 
$getOnlineAdmins->bindParam(':al', $aln); 
$getOnlineAdmins->bindParam(':stat', $statn); 
$getOnlineAdmins->execute(); 

echo " 
    <table class='table-fill'> 
    <thead> 
     <tr> 
     <th class='text-left' style='padding-left: 12px; padding-right: 12px;';></th> 
     </tr> 
    </thead> 
    <tbody class='table-hover'>"; 

if ($getOnlineAdmins->rowCount() >=1){ 
    echo ("These is one or more rows."); 
    while ($results = $getOnlineAdmins->fetch()){ 
     if((strtotime($results['LastVisited']) + 900) >= time()){ 
      echo ("Time requirement met."); 
      switch ($results['AdminLevel']) { 
       case 3: 
        $rank = 'In-Training/Intern'; 
        break; 
       case 6: 
        $rank = 'Community Moderator'; 
        break; 
       case 9: 
        $rank = 'Senior Moderator'; 
        break; 
       case 12: 
        $rank = 'Supervisor'; 
        break; 
       case 15: 
        $rank = 'Administrator'; 
        break; 
       case 18: 
        $rank = 'Senior Administrator'; 
        break; 
       case 21: 
        $rank = 'Staff Advisor'; 
        break; 
       case 24: 
        $rank = 'Engineer'; 
        break; 
       case 27: 
        $rank = 'Vice Chairman'; 
        break; 
       case 30: 
        $rank = 'Chairman'; 
        break; 
       case 33: 
        $rank = 'Website Engineer'; 
        break; 
       default: 
        $rank = 'Unknown'; 
        break; 
      } 
       echo "<tr>"; 
       echo "<td>" . $results['Username'] . " - " . $rank . "</td>"; 
      } else { 
      echo "<tr><td>{$results['Username']} &ndash; $rank</td>"; 
     } 
    } 
}else{ 
    echo "<tr><td>There are no staff members online.</td>"; 
} 
echo " </tbody> 
     </table>"; 

?> 
+0

當你運行它會發生什麼?你會得到預期的結果嗎? –

+0

我沒有得到預期的結果。這是代碼,也許我有一個不同的錯誤? http://pastebin.com/Abx176F2 – Austin

+1

我看到許多明顯的錯誤。這段代碼來自哪裏? –

回答

1

據我瞭解,你期望它now()沒有得到當前時間。請參閱this問題,我相信這是你誤解的根源。

假設$results['LastVisited']的格式是2016-07-23 14:11:02 –您可以將它轉換爲UNIX時間戳strtotime

因此,如果時間的15分鐘前小於或等於您上次訪問的時間:

if (strtotime('-15 minutes') <= strtotime($results['LastVisited'])) {} 

time() –另一種格式,你會使用,而不是MySQL的等價UNIX_TIMESTAMP()

if ((time() - 900) <= strtotime($results['LastVisited'])) {} 
+0

我仍然有問題。在這段代碼中,http://pastebin.com/CT7MBLp0(當它包含在HTML中)只是返回空白。我已經確定每個人的狀態都設置爲0,並且它仍然不會像它應該返回的那樣「無人在線」。另外爲了進一步參考,這裏是該領域。 https://gyazo.com/15c5818e82aaa46f6a265cf289df2a2a – Austin

+0

你能'回聲'測試';''你的'if'塊成功?並且,在成功的後續if檢查下,回顯另一個字符串。找出您的腳本到達或未到達的位置。你應該使用'switch'而不是大量的if-else鏈,例如'switch($ results ['AdminLevel'])'see [this](http://pastebin.com/raw/ntTDmrHA)example – Jonathan

+0

此聲明不是跑回聲「​​沒有在線的工作人員」;即使當狀態設置爲0時 – Austin

相關問題