0
我正在嘗試我們爲我創建的消息傳遞系統。如果您是發送郵件的人,我試圖使用if語句來更改發送郵件的人的姓名的顏色。例如,如果我收到用戶發來的消息,他的名字就會變成黑色,如果我給他發回消息,我的名字就會變成紅色。如果聲明更改div的顏色,如果div值=會話用戶名
總之,如果$ _SESSION ['userName']是發送消息的人,則將div#sender的顏色更改爲紅色。
$user = $_SESSION['userName'];
$qu = mysqli_query($con, "SELECT * FROM `messages` WHERE `to`='$user' OR `from`='$user'");
if (mysqli_num_rows($qu) > 0) {
while ($row = mysqli_fetch_array($qu)) {
echo '<tr><td><div id="sender">'.$row["from"].'</div></td><td><div id="r_message">'.$row["message"].'</div></td></tr>';
}
}
if(''.$row["from"].'' == $user){
echo'
<style>
#sender{
color:red;
}
</style>
';
}
else{echo'NO';}
我得到我的呼應「NO」,每一次,儘管很多在數據庫中的信息是由$ _SESSION用戶,以及其他用戶發送。
從'var_Dump($ row [「from」],$ user)開始;'另外,你是否明白你的'while'循環結束後你會比較嗎? –
..如果^顯示爲'null',那麼你的代碼失敗。 –
它確實看起來*我*你的邏輯應該是__inside__ while-loop。比方說,如果你想某些方式突出某個'
回答
$row
數組在循環中創建,並且您在循環外部使用。此外,您正在以這種方式創建多個重複ID。你應該使用類。嘗試這樣的事:
,然後只是把這個在叫頭,沒有必要將它輸出與PHP ..
來源
2016-05-19 19:18:46
謝謝男人,簡單而輕鬆。看完了「while while循環內的事情,這正是我想要的。」 – James0413
這裏就是我會做...
首先,在頁面的CSS樣式表中,爲
<tr>
定義兩個樣式類。我們稱之爲'emgood_guy
和bad_guy
。 (爲什麼不?)現在,在循環中,你只需決定要使用哪種風格:
現在,你會立即注意到我怎麼也試圖擴大東西讓他們更可讀。 (我希望我沒有做任何語法錯誤或mispeluns。)
如前所述,使用雙引號就要導致PHP 插值變量
$class
,當它在文字文本內發生的字符串。 (凱撒)看到這個頁面時,布魯圖斯會被標記爲壞人。所有關於如何在CSS樣式表中解析good_guy
或bad_guy
外觀的視覺細節。 (在我看來,你應該始終使用表單中的命名樣式,而不是內嵌樣式標籤。)來源
2016-05-19 19:23:53
夥計顯然是一個noob,可能還需要三元解釋,同樣,你仍然創建具有相同ID的元素的多個實例,除此之外,這與我的回答基本相同,但是對於幽默+1。 –
他有一個錯字,應改爲'$ class =($ row [「from」] =='Brutus'?' '('bad_guy':'good_guy');'(第一個冒號應該是一個問號 –
但即使如此,'$ class'總是會評估爲'good_guy',因爲'Brutus'是硬編碼的,永遠不會評估爲false / –
相關問題