浏览器语言与以国家命名的数据库表不匹配,如何发起查询?
How to initiate query if browser language does not match database tables, which named as countries?
我在PHP方面没有经验,我只知道基础知识。我不知道我问的是否正确,我什至不知道这是否可能,但我会尽力解释。
我有超过 10 个 table 的数据库。每个 table 都被命名为国家(奥地利、德国、拉脱维亚、立陶宛..等)。
我有脚本,当他连接到网站时,它会显示用户浏览器语言。
此外,我有 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..
}
你的第二个问题需要作为一个单独的问题来问!
我在PHP方面没有经验,我只知道基础知识。我不知道我问的是否正确,我什至不知道这是否可能,但我会尽力解释。
我有超过 10 个 table 的数据库。每个 table 都被命名为国家(奥地利、德国、拉脱维亚、立陶宛..等)。
我有脚本,当他连接到网站时,它会显示用户浏览器语言。
此外,我有 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..
}
你的第二个问题需要作为一个单独的问题来问!