我正在努力處理這個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>
在您的Q/A中發佈代碼時,您應該*至少*正確地設置您的代碼格式(該網上有大量工具)。這將使您更容易查看代碼並提供建議和答案。請參考[mcve]。 –
更改'if($ row ['date_created'] <= $ date){'to'if(strtotime($ row ['date_created'])<= strtotime($ date)){'查看 –
Coops可能沒有收到通知,科迪非常友好,可以將我們的評論線索轉移到聊天 - 在那裏會更好。 https://chat.stackoverflow.com/rooms/152776 – corsiKa