如果session是lang_code,则从表中选择table = id

时间:2013-04-18 12:28:02

标签: mysql

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

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

它打印到目前为止很好,但只有荷兰菜单标题,当我查看我的数据库时,我有这个表显示语言国家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>";

2 个答案:

答案 0 :(得分:0)

您没有对结果进行排序以检查语言国家/地区ID。你只获得了第一行。您需要更改查询以获取所需的语言。或者循环查看结果,检查它们是哪种语言。

在您发布的代码中,if语句在每个分支中执行相同的操作。而且你永远不会用它来选择数据。

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

答案 1 :(得分: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
    }
}

如果这不是你想要的,请评论,我会修改我的答案。