Как инициировать запрос, если язык браузера не соответствует таблицам базы данных, которые называются странами?

Я не опытный в PHP, я знаю только основы. Я не знаю, правильно ли я спрашиваю, и даже не знаю, возможно ли это, но я постараюсь объяснить.

  1. У меня есть база данных с 10+ таблицами. Каждая таблица называется страной (Австрия, Германия, Латвия, Литва и т. Д.).

  2. У меня есть скрипт, который отображает язык браузера пользователя при подключении к сайту.

  3. Кроме того, у меня есть скрипт запроса PHP, который отображает данные на языке браузера пользователя (если пользователь соединяется с браузером, основным языком которого является австрийский язык, чем данные запроса PHP из таблицы Австрии).

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..
}

Что я хочу сделать:

Я хочу, чтобы, если пользователь подключается к веб-сайту, и его язык браузера не совпадает с моими таблицами, чем по умолчанию, запрос должен инициироваться с другой таблицей и не отправлять ошибки (например, таблицу Латвии). Как я могу это сделать?

Другой вопрос:

Я знаю, что если я буду использовать функцию HTTP_ACCEPT_LANGUAGE, то я не смогу использовать <select> код, который пользователь сможет выбрать страну вручную. Может быть, я ошибаюсь .. может, кто-то может объяснить это для меня?

1

Решение

Попробуйте что-то вроде этого

$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..
}

Ваш второй вопрос должен быть задан как отдельный вопрос!

1

Другие решения

Других решений пока нет …