2012-03-25 4 views
0

У меня есть сценарий, который отображает страны на разных языках. Например, «Соединенное Королевство» на испанском языке будет «Reino Unido» и т. Д. Каждый язык хранится в другой таблице, например, «name_es» для испанского или «name_en» для английского. Затем правильная таблица выбирается с помощью значения сеанса, сохраненного для каждого пользователя. Что у меня есть это:переменная сеанса внутри другой переменной - как?

if ($countries_id) 
    { 
     $sql_select_countries = $this->query_silent("SELECT name_".$_SESSION['language']." as name FROM " . DB_PREFIX . "countries WHERE 
      id IN (" . $countries_id . ")"); 

     if ($sql_select_countries) 
     { 
      while ($country_details = $this->fetch_array($sql_select_countries)) 
      { 
       $countries_array[] = $country_details['name']; 
      } 
     } 
    } 

Обратите внимание, что проблема заключается в следующем:

$countries_array[] = $country_details['name']; 

Мне нужно, чтобы это было что-то вроде

$countries_array[] = $country_details['name_$_SESSION['language']']; 

Но я не могу понять, Правильный синтаксис: (

+0

'query_silent()' - Мне нравится имя! –

ответ

1

Итак, вы хотите объединить строку 'name_' с хранилищем, хранящимся в сеансе?

$countries_array[] = $country_details['name_'.$_SESSION['language']]; 

Я думаю, что если добавить некоторые речевые знаки и фигурные скобки, вы можете сделать это:

$countries_array[] = $country_details["name_{$_SESSION['language']}"]; 
+0

Я думаю, что вы испортили свои цитаты на последнем примере ... –

+0

Я действительно, спасибо! – shanethehat

+0

Это сработало, спасибо :) – user1227914

Смежные вопросы