2012-10-10 34 views
1

我有一個MySql表,用於存儲州和城市列表中的用戶狀態和城市。我特別把每個州寫成了兩個字母縮寫的版本(如華盛頓州和加利福尼亞州的華盛頓州和加利福尼亞州的CA),每個城市都有兩個字母的縮寫和城市名稱,比如:Boulder Colorado將是CO-boulder,猶他州鹽湖城UT-salt-lake-city以避免具有相同城市名稱的不同州。 PHP的插入列City下的值(UT-salt-lake-city),但是當我打電話,通過PHP變量,它會顯示如下:Your location is: UT-salt-lake-city, Utah. 爲了解決這個問題,我已經作出的變量,這個名單我可以爲MySql表值指定字符串嗎?

if ($city == "AL-auburn") { $city = "Auburn"; } 
    else if ($city == "AL-birmingham") { $city = "Birmingham"; } 
    else if ($city == "GA-columbus") { $city = "Columbus"; $state = "Georgia"; } 
    else if ($city == "AL-dothan") { $city = "Dothan"; } 
    else if ($city == "AL-florence") { $city = "Forence"; } 
    else if ($city == "AL-muscle-shoals") { $city = "Muscle Shoals"; } 
    else if ($city == "AL-gadsden-anniston") { $city = "Gadsden Anniston"; } 
    else if ($city == "AL-huntsville") { $city = "Huntsville"; } 
    else if ($city == "AL-decatur") { $city = "Decatur"; } 
    else if ($city == "AL-mobile") { $city = "Mobile"; } 
    else if ($city == "AL-montgomery") { $city = "Montgomery"; } 
    else if ($city == "AL-tuscaloosa") { $city = "Tuscaloosa"; } 

是有一種方法可以縮短這個過程,或者至少從一個單獨的文件中調用它,所以我不需要每次調用位置時都複製/粘貼。

+1

list($state, $city) = explode('-', $city, 2); $city = ucwords(strtr($city, '-', ' ')); 

然後,您可以在狀態2字母碼有一個HashMap他們長的名字再次映射只會從蜇中剝離出三個三個字符還好嗎?如果是的話,使用substr()'$ city = substr($ city,3); ' – 2012-10-10 03:14:32

+0

你爲什麼不把正確的城市名稱存儲到數據庫中呢? – hakre

+0

我不得不在表格中創建一個新的'