2014-03-01 92 views
0

我嘗試按8,9,10的順序顯示當天的所有小時數,但要區分數據庫中的小時數與非數小時數的小時數。例如,給一個不同的顏色。誰能幫忙? (我不是一個程序員,我只是學習PHP,所以任何我將不勝感激任何幫助,但請以簡單的方式解釋它)每種結果的不同風格

這給了我在藍色數據庫中的小時數。但我不能讓時間不在數據庫中,我不能給他們另一種顏色,右位置:8,9,10,11 ...

$result = mysqli_query($con, 'SELECT * FROM consulta 
        WHERE professional=1 
        AND client=0'); 
while ($row = mysqli_fetch_array($result)) { 

if ($row['hour']=='09:00:00') { echo '<p style="color:blue;">9</p>'; } 
elseif ($row['hour']=='10:00:00') { echo '<p style="color:blue;">10</p>'; } 
elseif ($row['hour']=='11:00:00') { echo '<p style="color:blue;">11</p>'; } 
elseif ($row['hour']=='12:00:00') { echo '<p style="color:blue;">12</p>'; } 
} 

回答

0

這樣你遍歷小時數數據庫中的。只是他們。所以如果11不在數據庫中,如果根本不會顯示。你需要一個不同的邏輯。

您需要遍歷所有24小時,並且每個小時檢查它是否在數據庫中,如果是,則應用樣式,如果不是,則正常呈現。還有一個提示,它可能更容易藐視CSS類而不是使用內聯樣式(<p class="db">9</p>而不是<p style="color:blue;">9</p>,當然,db類正確定義;這樣,您只需更改一個規則而不是樣式中的每個元素你想改變一些東西)。

+0

謝謝@Shomz。你對這堂課的建議非常好。我嘗試過,它的工作原理。關於另一點,我不知道如何迭代24小時。你能舉個例子嗎? – Nrc

+0

不客氣。 24小時可以是一個簡單的for循環:'for($ i = 0; $ i <24; $ ++){'...然後在裏面你可以建立你的小時字符串來比較,如下所示:'$ hour = 「$ i:00:00」;'然後你只是將它與所有行進行比較並檢查'if($ row ['hour'] == $ hour)'... – Shomz

1

這裏有一些你的sudo代碼。用所有小時數組成一個數組。然後迭代該數組而不是數據庫中的結果。

for ($i = 0; $i < 24; $i++) { 
    if(in_array("$i:00:00", $row)) { 
     // hour was found in the database 
     echo '<p style="color:blue;">'.$i.'</p>'; 
    } else { 
     // hour was not found 
     echo '<p style="color:red;">'.$i.'</p>'; 
    } 
} 
+0

對不起,應該是in_array ..那應該是... –

+0

正如我所說,我只是一個初學者。我不明白你的代碼。你能解釋它還是使它更簡單? – Nrc

+0

@Shomz迭代更好一點。我編輯了我的代碼。那麼這樣做是重複24次。對於每次迭代,變量$ i都會計數。然後在「if」中,我們通過使用in_array詢問數據庫中$「00:00」是否在數組$行中。 $行包含您從數據庫中獲得的小時數。如果我們發現它,那麼我們知道它在數據庫中,並且您可以用一種方法着色。如果沒有,它不在數據庫中,你會進入其他的。希望它是有道理的。 –