1

ifセッションと現在のSQLテーブル「コードを見る」で英語のメニュータイトルを選択しようとしています

if($_SESSION['lang_code'] == 'en') {
    echo $courseCat['course_cat_title'];
} else 
    echo $courseCat['course_cat_title']; 

これまでのところうまく印刷されますが、オランダ語のメニュー タイトルのみが表示されます。DB を見ると、言語の国 ID course_cat_lang_countryを示すこのテーブルがあり、ページが www.yourdomain.nl の場合に英語のタイトルを印刷する方法を知る必要があります。 /en/. 私が今使っている完全なコードはこれです。

$QcourseCat = mysql_query("SELECT * FROM web_course_cat WHERE course_cat_id = 1");
$courseCat = mysql_fetch_assoc($QcourseCat);
echo "< h4>";

if($_SESSION['lang_code'] == 'en') { 
    echo $courseCat['course_cat_title'];  
} else 
    echo $courseCat['course_cat_title']; 

echo "< h4>";
4

2 に答える 2

0

言語の国 ID を確認するために結果を並べ替えていません。最初の行のみを取得しています。必要な言語を取得するには、クエリを変更する必要があります。または、取得した結果をループして、それらがどの言語であるかを確認します。

ステートメントを投稿したコードでifは、各ブランチで同じことを行います。また、データの選択に使用することはありません。

また、コメントに従って、MYSQL は非推奨であるため、クエリに MYSQLi または PDO を使用してください。

于 2013-04-18T12:40:43.663 に答える
0

これはどう:

if($_SESSION['lang_code'] == 'en') {
    $table='course_cat_eng'; 
}
else {
    $table='course_cat_title';
}

$sql = "SELECT * FROM $table WHERE course_cat_id = 1";
if (! $resource = mysql_query($sql) ){
    echo "Error reading from table $table";
}
else {
    if (!mysql_num_rows($resource ) ){
        echo "No records foin in $table";
    }
    else {
        $courseCat = mysql_fetch_assoc($resource);
        echo "<h4>";
        echo $courseCat['course_cat_title']; 
        echo "</h4>";
        //...
        // other stuff you might want to do
    }
}

これがあなたが探しているものでない場合はコメントしてください。答えを修正します。

于 2013-04-18T14:43:02.493 に答える