1

我正在尝试使用 if session 和我当前的 sql 表“查看代码”选择英文菜单标题

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

到目前为止它打印得很好,但只有荷兰语菜单标题,当我查看我的数据库时,我有一张显示语言国家 ID course_cat_lang_country的表格,现在我需要知道当页面为 www.yourdomain.nl 时如何打印英文标题/zh/。我现在使用的完整代码是这样的。

$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语句在每个分支中执行相同的操作。而且您永远不会使用它来选择数据。

此外,根据评论,您的查询使用 MYSQLi 或 PDO,因为不推荐使用 MYSQL。

于 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 回答