私は多言語サイトを持っており、これを使用してユーザーが使用する言語を取得しています:
$languagestring = array();
$res1 = "SELECT id, text FROM ".$prefix."_language WHERE lang = 'en' ORDER BY id ASC";
if($result1 = $mysqli->query($res1)){
while($row1 = $result1->fetch_object()){
$langid = $row1->id;
$res = "SELECT text FROM ".$prefix."_language WHERE fk_id = $langid AND lang = '$language'";
if($result = $mysqli->query($res)){
$row = $result->fetch_object();
if(!$row){
$languagestring[] = $row1->text;
} else {
$str = $row->text;
$languagestring[] = $str;
}
}
}
}
このスクリプトでは、最初にデフォルトの英語を取得し、次にユーザーが好む言語に英語と一致する文字列があるかどうかを確認します。これは魅力のように機能しますが、実行時間が長くなります。これら 2 つのクエリを 1 つに結合することは可能ですか。
前もって感謝します ;-)
######## 編集運がないのでこれを試しました:
$res1 = "SELECT t1.text as etext, t2.text
FROM ".$prefix."_language t1 LEFT JOIN ".$prefix."_language t2 ON t2.fk_id = t1.id AND lang = 'da'";
if($result1 = $mysqli->query($res1)){
while($row1 = $result1->fetch_object()){
$row1->text.'<br>';
}
}
結果が返ってこない?