2014-10-31 53 views
-1

我有這個代碼,找到誰登錄並顯示用戶名和他們的成員身份。格式回顯取決於陣列

while ($row = mysqli_fetch_assoc($whoisloggedin)) { 
     $usersArray = $row['status'];  
     $usersArray2 = $row['username']; 
     echo '<pre>'; 
     echo $usersArray," ",$usersArray2; 
     echo '</pre>'; 
    } 

現在顯示4名的用戶名,因爲有4個用戶登錄,我想知道是否有可能改變文字顏色。所以現在可能會說「Admin Kenazz」或「VIP ryemck」,我想知道是否可以讓「Admin」變爲紅色,「VIP」是黃金等?

+0

你可以做到這一點...你可以逐個打印數組元素並將樣式應用於特定的元素。 – 2014-10-31 08:51:48

回答

1

你可以做些什麼喜歡這個。

while ($row = mysqli_fetch_assoc($whoisloggedin)) { 
    $usersArray = $row['status'];  
    $usersArray2 = $row['username']; 

    if ($usersArray == 'Admin') { 
     $colour = 'red'; 
    } 
    else if ($usersArray == 'VIP') { 
     $colour = 'gold'; 
    } 

    echo '<p style="color: '.$colour.'">'.$usersArray.' '.$usersArray2.'</p>'; 
} 
+0

我不知道這是那麼容易,謝謝! :) – 2014-10-31 08:59:05

+0

如下所述,我認爲'if' ...'else'不是最好的選擇,因爲再過幾次之後,它將變得無法維護。儘管使用了'$ color'變量!另外,缺少一個默認情況。 – hexblot 2014-10-31 09:00:45

+0

@hexblot感謝您的貢獻:)但只會有1個,也許2個更多的案例 – 2014-10-31 09:06:56

0

假設這是HTML輸出,沒有安慰,你可以嘗試類似的東西:

while ($row = mysqli_fetch_assoc($whoisloggedin)) { 
    $usersArray = $row['status'];  
    $usersArray2 = $row['username']; 

    print '<pre>'; 
    switch($usersArray) { 
    case 'something': 
     $color = "red"; 
     break; 
    case 'somethingelse': 
     $color = "blue" 
     break; 
    default: 
     $color = "white"; 
     break; 
    } 
    print '<span style="color: '.$color.'">'.$usersArray.' '.$usersArray2.'</span>'; 
    print '</pre>' 
} 

顯然,這將是更好的替代style標籤帶班,並添加顏色CSS - 如

print '<span class="'.$color.'">'; 

具有類似於

一個CSS線

編輯:併入$顏色變量按@大衛瓊斯的解決方案

1

嘗試應用檢查

if($row['somthing'] == 'Admin') { 
    echo '<span style="color:red">'.$row['username'].'</span>'; 
} 
else if($row['somthing'] == 'VIP') { 
    echo '<span style="color:#fff">'.$row['username'].'</span>'; 
} 
else { 
    echo '<span style="color:#f00">'.$row['username'].'</span>'; 
} 

等等....

+0

'if' ...'else'將非常快速地變得非常單調乏味,'switch'在這裏可能會更好。另外你沒有默認情況。否則,固體解決方案! – hexblot 2014-10-31 08:57:31

+0

@hexblot謝謝加入默認情況下 – 2014-10-31 08:59:01

1

最簡單的方法是做它用替換功能或命名的數組鍵:使用

$rename=array("Admin"=>"<span style='color:red'>" 
,"VIP"=>"<span style='color:yellow'>"); 
while ($row = mysqli_fetch_assoc($whoisloggedin)) { 
    $usersArray = $row['status'];  
    $usersArray2 = $row['username']; 
    echo '<pre>'; 
    echo $rename[$usersArray].$usersArray" ".$usersArray2."</span>"; 
    echo '</pre>'; 
} 

現在第二個變體替換功能

$find=array("Admin","VIP"); 
$replace=array("<span style='color:red'>Admin" 
,"<span style='color:yellow'>VIP"); 
while ($row = mysqli_fetch_assoc($whoisloggedin)) { 
    $usersArray = $row['status'];  
    $usersArray2 = $row['username']; 
    echo '<pre>'; 
    echo str_replace($find,$replace,$usersArray)." ".$usersArray2."</span>"; 
    echo '</pre>'; 
} 
+0

這是非常接近難以維持只有兩種情況!請參閱我的或@David Jones的答案,以獲得更具擴展性的解決方案。 – hexblot 2014-10-31 08:59:00

+0

這些問題包含「admin is red,vip gold,ETC」,這表明除了兩個以外,還有更多的案例。在這種情況下,此代碼比其他答案更可讀 – Kyborek 2014-10-31 09:03:28

+0

@Kybored我不同意 - 對於更多情況,'switch'是一種更好的構造。 – hexblot 2014-10-31 09:07:10