2011-08-31 48 views
0

我在MYSQL數據庫中有一些類別(數字),我試圖回顯並與類別名稱匹配。例如。 (1 =山地自行車,2 =路,3 =越野越野車)如何將這個示例if語句放入數組中作爲echo語句/函數使用?

我想我需要做一個數組或功能,使自己更容易當我回應$ event_type,你們覺得呢?

if ($row_Recordset1['event_type'] == '1') echo 'Mountain Bike'; 
else if ($row_Recordset1['event_type'] == '2') echo 'Road'; 
else if ($row_Recordset1['event_type'] == '3') echo 'Cyclocross'; 

在此先感謝!

+0

可以將這些字符串添加到數據庫嗎?這可以節省你不必硬編碼這些值 – Joe

+0

交換機或陣列 – Kevin

回答

3

嘗試這樣的事情

$event_types = array(1 => 'Mountain Bike', 2 => 'Road', 3 => 'Cyclocross'); 
echo $event_types[$row_Recordset1['event_type']]; 
+0

這一個很好! THanks – eberswine

+0

閱讀我的!它更簡單! /嫉妒的臉 – 2011-08-31 20:22:47

+0

@Mario LOL!但是你使用int cast和subtraction,在我看來= p更復雜。 (順便說一句,我確實給了你的答案一個投票)) –

2

純PHP的解決辦法是把分類到一個數組,然後只是解引用在輸出時間:

$categories = array(
    1 => 'Mountain Bike', 
    2 => 'Road', 
    3 => 'Cyclocross' 
); 


echo $categories[$row_Recordset1['event_type']]; 

更好的解決方案將是把這些類別到你的數據庫中。然後你就可以加入了該類別表,並在查詢時拉起與類別ID一起類別名稱:

SELECT ..., categories.name 
FROM sometable 
LEFT JOIN your_categories ON sometable.categoryID = categories.ID 
2

適應了這個代碼:

$array = array('Mountain Bike', 'Road', 'Cyclocross'); 
echo $array[(int) $row_Recordset1['event_type'] -1]; 
1

它可能會或可能不會更這取決於你在數據庫中存儲的內容。

如果你有每一行的類別(例如:1)和類別標籤(如山地自行車):

$categories = array(); 

$result = mysql_query("SELECT * FROM yourTable"); 
while($row = mysql_fetch_assoc($result) 
    $categories[$row['event_type']] = $row['CategoryName']; 

使用這種方法,你的結束數組是這樣的:

陣列(1 =>「Mountain Bike」,2 =>「Road」,3 =>「Cyclocross」);

這樣,你可以這樣做:

echo($categories[$row_Recordsset1['event_type']]); // Outputs key value in array 

另外,

您只需填寫自己的數組:

$categories = array(1 => "Mountain Bike", 2 => "Road", 3 => "Cyclocross"); 

然後使用相同的回聲方法我上面貼。