2011-08-23 73 views
3

我正在創建顯示在表中的計算機庫存網站。 我試圖改變一例的輸出顯示以下PHP從數據庫中更改輸出

echo "<td>".$row['WindowsVersion']."</td>\n"; 

顯示5.0或5.1或5.2或6.0或6.1

,但我希望它顯示

5.0 as 2000 
5.1 as XP 
5.2 as 2003 
6.0 as Vista 
6.1 as 7 

任何幫助將不勝感激

回答

6

你總是可以創建一個預定義數組,使用Windows版本作爲這樣的鍵。

$win_ver = array('5.0' => '2000','5.1' => 'XP'); 

echo $win_ver[$row['WindowsVersion']]; 
+0

這工作很多 – Dante

+0

很容易十分感謝!太好了! –

5

在這種情況下,您可以使用數組作爲顯示/重寫映射:

$rewrite = array(
    "5.0" => "2000", 
    "5.1" => "XP", 
    .. 
); 

print $rewrite[ $row['WindowsVersion'] ]; 

它只是使用您的原始值作爲重寫數組中的索引鍵,併爲您提供相關的替代值。

4
$versions = array('5.0' => '2000', 
        '5.1' => 'XP', 
        '5.2' => '2003', 
        '6.0' => 'Vista', 
        '6.1' => '7' 
       ); 

if(array_key_exists($row['WindowsVersion'], $versions)) { 
    echo $versions[ $row['WindowsVersion'] ]; 
} else { 
    echo $row['WindowsVersion']; 
} 
4

你爲什麼不把你想直接查看數據庫中的事。這會更容易。 但是,如果這是不可能只使用:

$map = array('5.0'=>'2000', ...); 

... 

print $map[$row['WindowsVersion']]; 
6

DB版本:

SELECT 
    CASE WindowsVersion 
    WHEN '5.0' THEN '2000' 
    WHEN '5.1' THEN 'XP' 
    WHEN '5.2' THEN '2003' 
    WHEN '6.0' THEN 'Vista' 
    ELSE '7' AS WindowsVersion 
FROM ... 

或PHP

<?php 
function getWinName($win) { 
    switch($win) { 
     case '5.0': $version = '2000'; break; 
     case '5.1': $version = 'XP'; break; 
     case '5.2': $version = '2003'; break; 
     case '5.0': $version = 'Vista'; break; 
     default: $version = '7'; 
    } 
    return $version; 
} 

echo "" . getWinName($row['WindowsVersion']) . "\n"; 
+1

在任何'case'行末尾沒有'break',他總是輸出'7'。 – Andreas

+2

哎呀!好決定! –