2012-03-25 5 views
0

Ich habe ein Skript, das Länder in verschiedenen Sprachen anzeigt. Zum Beispiel "Vereinigtes Königreich" auf Spanisch wäre "Reino Unido" usw. Jede Sprache wird in einer anderen Tabelle gespeichert, wie "Name_Er" für Spanisch oder "Name_En" für Englisch. Die richtige Tabelle wird dann durch einen Sitzungswert ausgewählt, der für jeden Benutzer gespeichert ist. Was ich habe, ist dies:Sitzungsvariable in einer anderen Variablen - wie?

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']; 
      } 
     } 
    } 

Beachten Sie, dass das Problem Linie ist dies:

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

Ich brauche es so etwas wie

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

zu sein, aber ich kann nicht herausfinden, die korrekte Syntax :(

+0

'query_silent()' - ich den Namen gefällt! –

Antwort

1

Sie wollen also die Zeichenkette 'name_' mit dem in der Sitzung gespeicherten vale verketten?

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

Ich denke, wenn Sie einige Sprachzeichen und geschweiften Klammern fügen Sie dies tun können:

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

Ich denke, du hast deine Zitate in diesem letzten Beispiel durcheinander gebracht ... –

+0

Ich tat es tatsächlich, danke! – shanethehat

+0

Das hat funktioniert, danke :) – user1227914

0
$countries_array[] = $country_details[$_SESSION["language"]]; 
Verwandte Themen