2017-08-21 33 views
0

我正在努力處理這個IF語句。我試圖讓任何比今天更早的細胞變成紅色,但所有的細胞都變紅了。我相信這是一個明顯的錯誤,但我看不到樹木。如果在另一條語句裏面聲明

第59行的IF語句是我遇到的問題之一。我想要選擇檢查所有列上的日期,但首先以「未開始」結尾。

任何幫助,將不勝感激。

$notstarted = array(); 
    $intransit = array(); 
    $awaiting = array(); 
    $built = array(); 
    $cfc2 = array(); 
    $received = array(); 
    $date_created = array(); 
    $date = date('Y-m-d'); 

    try {  
    //open the PDO-connection to a MySQL-host 
    $DBH = new PDO("mysql:host=$host;dbname=$daba", $user, $pass); 

    //error mode set to EXCEPTION (ERRMODE_SILENT or ERRMODE_WARNING are also possible) 
    $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    //execute the query 
    $STH = $DBH->query('SELECT status, ticket, site, date_created FROM stores ORDER BY ticket'); 

    //set default fetch mode to FETCH_ASSOC (if you want to try FETCH_OBJ) 
    $STH->setFetchMode(PDO::FETCH_ASSOC); 
    } 
    catch(PDOException $e) { 
    echo $e->getMessage(); 
    } 

    //go through all results and assign them to the related arrays 
    while($row = $STH->fetch()) { 
    $data = $row['ticket'] . '  (' . $row['site'] . ')'; 
    if ($row['status'] == "Not Started") { $notstarted[] = $data; } 
    if ($row['status'] == "In Transit") { $intransit[] = $data; } 
    if ($row['status'] == "Awaiting Build") { $awaiting[] = $data; } 
    if ($row['status'] == "Being Built") { $built[] = $data; } 
    if ($row['status'] == "On Return from CFC2") { $cfc2[] = $data; } 
    if ($row['status'] == "Received") { $received[] = $data; } 
    } 

    //close the connection 
    $DBH = null; 
?> 



<table align="center" border="1" width="90%"> 
     <tr> 
     <td align="center" bgcolor="#FDFEAD"><font face="Arial"><strong>Not Started</strong></font></td> 
     <td align="center" bgcolor="#FDFEAD"><font face="Arial"><strong>In Transit</strong></font></td> 
     <td align="center" bgcolor="#FDFEAD"><font face="Arial"><strong>Awaiting Build</strong></font></td> 
     <td align="center" bgcolor="#FDFEAD"><font face="Arial"><strong>Being Built</strong></font></td> 
     <td align="center" bgcolor="#FDFEAD"><font face="Arial"><strong>On Return</strong></font></td> 
     <td align="center" bgcolor="#FDFEAD"><font face="Arial"><strong>Received Back</strong></font></td> 
     </tr> 

     <?php 
     for ($i = 0; $i < max(count($notstarted),count($intransit),count($awaiting),count($built),count($cfc2),count($received)); $i++) { 
      echo "<tr>"; 


    if (count($notstarted) > $i) { 
     if ($row['date_created'] <= $date) { 
     echo "<td align=\"center\" bgcolor=\"red\"><font face=\"Arial\">"; 
    } else { 
     echo "<td align=\"center\" bgcolor=\"#BCBBBB\"><font face=\"Arial\">"; 
    } 
      echo $notstarted[$i]; 
      echo "</font></td>"; 
    } 


      echo "<td align=\"center\"><font face=\"Arial\">"; 
      if (count($intransit) > $i) echo $intransit[$i]; 
      echo "</font></td>"; 
      echo "<td align=\"center\"><font face=\"Arial\">"; 
      if (count($awaiting) > $i) echo $awaiting[$i]; 
      echo "</font></td>"; 
      echo "<td align=\"center\"><font face=\"Arial\">"; 
      if (count($built) > $i) echo $built[$i]; 
      echo "</font></td>"; 
      echo "<td align=\"center\"><font face=\"Arial\">"; 
      if (count($cfc2) > $i) echo $cfc2[$i]; 
      echo "</font></td>"; 
      echo "<td align=\"center\" bgcolor=\"#95FA95\"><font face=\"Arial\">"; 
      if (count($received) > $i) echo $received[$i]; 
      echo "</font></td>"; 
      echo "</tr>"; 
     } 
     ?> 
    </table> 
+0

在您的Q/A中發佈代碼時,您應該*至少*正確地設置您的代碼格式(該網上有大量工具)。這將使您更容易查看代碼並提供建議和答案。請參考[mcve]。 –

+0

更改'if($ row ['date_created'] <= $ date){'to'if(strtotime($ row ['date_created'])<= strtotime($ date)){'查看 –

+0

Coops可能沒有收到通知,科迪非常友好,可以將我們的評論線索轉移到聊天 - 在那裏會更好。 https://chat.stackoverflow.com/rooms/152776 – corsiKa

回答

1

不要拿與<(小於)運算符的日期。

​​

你可能想在strtotime閱讀起來。

還有一些其他問題需要清理,首先是縮進。由於縮進,代碼中存在問題的部分難以處理。

+0

註釋不適用於擴展討論或調試會話;這個對話已經[轉移到聊天](http://chat.stackoverflow.com/rooms/152776/discussion-on-answer-by-corsika-if-statement-inside-another-if-statement)。如果您在使用此代碼時遇到問題,請編輯您的問題。如果您有後續問題,請提出一個新問題(如有必要,請提供此鏈接以提供上下文)。 –