浏览器语言与以国家命名的数据库表不匹配,如何发起查询?

How to initiate query if browser language does not match database tables, which named as countries?

我在PHP方面没有经验,我只知道基础知识。我不知道我问的是否正确,我什至不知道这是否可能,但我会尽力解释。

  1. 我有超过 10 个 table 的数据库。每个 table 都被命名为国家(奥地利、德国、拉脱维亚、立陶宛..等)。

  2. 我有脚本,当他连接到网站时,它会显示用户浏览器语言。

  3. 此外,我有 PHP 查询脚本,它按用户浏览器语言显示数据(如果用户使用主要语言为奥地利语的浏览器连接,则 PHP 查询显示来自奥地利的数据 table).

HTTP_ACCEPT_LANGUAGE

if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ 
    $lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); 
}
if($lc == "de") { $langas = "Germany"; }
if($lc == "lt") { $langas = "Lithuania"; }
// etc..
echo $langas;

查询:

foreach($db->query('SELECT * FROM '.$langas.'') as $row) {
    echo '<span>'.$row['info1'].'</span>';
    echo '<span>'.$row['info2'].'</span>';
// etc..
}

我想做的事情:

我希望如果用户连接到网站,并且他的浏览器语言与我的 table 不匹配,那么默认情况下,查询应该与其他 table 一起启动而不发送错误(对于例如拉脱维亚 table)。我该怎么做?

其他问题:

我知道,如果我将使用 HTTP_ACCEPT_LANGUAGE 功能,那么我将无法使用 <select> 代码,该用户将能够手动 select 国家/地区。也许我错了..也许有人可以为我解释一下?

尝试这样的事情

$langas = '';

if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ 
    $lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); 

    if($lc == "de") { $langas = "Germany"; }
    if($lc == "lt") { $langas = "Lithuania"; }
    // etc
} 

if ( $langas == '' ) {
    // set default language
    $langas = "Germany";
}

foreach($db->query('SELECT * FROM '.$langas.'') as $row) {
    echo '<span>'.$row['info1'].'</span>';
    echo '<span>'.$row['info2'].'</span>';
// etc..
}

你的第二个问题需要作为一个单独的问题来问!