我想弄清楚如何處理使用XML和PHP的多語言?我希望能夠默認使用英語,但如果用戶選擇了一種語言,可以說德語,我想將語言改爲此。這部分我可以弄清楚,但如果某個語言字符串沒有被翻譯成德語,我希望能夠選擇該字符串的英文版本。我曾與普通PHP和MySQL這樣做是這樣的:Foreach WHERE子句?
$language = "de";
$sql = "SELECT * FROM ".$prefix."_countries WHERE con_id=$language";
$result = mysql_query($sql) ;
$row = mysql_fetch_assoc($result);
$userlang = $row['lang'];
$languagestring = array();
$res1 = mysql_query("SELECT * FROM ".$prefix."_language WHERE lang = 'en'");
while($row1 = mysql_fetch_assoc($res1)){
$langid = $row1['id'];
$res = mysql_query("SELECT * FROM ".$prefix."_language WHERE fk_id = $langid AND lang = '$userlang'");
$row = mysql_fetch_assoc($res);
if(!$row){
$languagestring[] = $row1['text'];
} else {
$str = $row['text'];
$languagestring[] = $str;
}
}
現在我建立我的XML的方式爲DB這樣相同:
<data>
<record id="1">
<fk_id>0</fk_id>
<lang>en</lang>
<text>Network Error</text>
</record>
<record id="2">
<fk_id>0</fk_id>
<lang>en</lang>
<text>There is a problem with the network!</text>
</record>
<record id="3">
<fk_id>0</fk_id>
<lang>en</lang>
<text>OK</text>
</record>
<record id="4">
<fk_id>1</fk_id>
<lang>de</lang>
<text>Das netvaerk sind corrupt!</text>
</record>
' 我怎麼能做到我做什麼與MySQL與XML?
任何幫助表示讚賞:-)
您應該學習如何製作SQL JOIN。您的所有查詢都可以使用單個查詢(不重複)完成。 –
請不要使用'mysql_ *'函數來編寫新的代碼。他們不再維護,社區已經開始[棄用程序](http://goo.gl/KJveJ)。查看[*紅色框*](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定哪些,[這篇文章](http://goo.gl/3gqF9)會幫助你。如果你選擇PDO,[這裏是很好的教程](http://goo.gl/vFWnC)。 –
好吧,實際上我想在這種情況下繞過任何數據庫解決方案,只使用XML。如果我使用2個xml文檔,每個語言一個文檔,上面的例子更容易,我還在遊蕩? –