Variable aus DB richtig auslesen

Loddar1

Erfahrenes Mitglied
Hallo erste mal,
vieleicht kann mir ja einer von euch helfen?
Ich habe ein DB_Menue, wo ich die URL usw. auslese.
Mein Link, sieht etwa so aus:
PHP:
$menu .='<a href="index.php?linkurl='.$url['link'].'">'.$title['label'].'</a>';
In der DB steht unter label = Maschinen.
Ich möchte in die DB
PHP:
$masch
schreiben, damit ich die variable
als Deutsch, Englisch usw. anzeigen kann.

Ich poste hier mal einen Ausschnitt meiner Menue.php:
PHP:
$sql = "SELECT * FROM $menu ORDER BY neu, mid ASC";
$items = mysql_query($sql);
while ($obj = mysql_fetch_object($items)) {
if ($obj->parent_id == 0) {
$parent_menu[$obj->mid]['label'] = $obj->label;
$parent_menu[$obj->mid]['menutitle'] = $obj->menutitle;
$parent_menu[$obj->mid]['link'] = $obj->link_url;
} else {
$sub_menu[$obj->mid]['parent'] = $obj->parent_id;
$sub_menu[$obj->mid]['label'] = $obj->label;
$sub_menu[$obj->mid]['menutitle'] = $obj->menutitle;
$sub_menu[$obj->mid]['link'] = $obj->link_url;
$parent_menu[$obj->parent_id]['count']++;}}
mysql_free_result($items);
function $menu($parent_array, $sub_array, $qs_val = "mid", $main_id = "nav", $sub_id = "subnav", $extra_style = "but", $sub_style = "but", $sublink_style = "but2") {
foreach ($parent_array as $pkey => $pval) {
if (!empty($pval['count'])) {
$bas = mysql_fetch_array(mysql_query("SELECT * FROM $xxxx WHERE id='1'"));
$menu .= '<div class="'.$sub_style.'"><a title="'.$pval['menutitle'].'" href="index.php?loc='.$pval['link'].'&amp;lang='.$_SESSION['lang'].'&amp;'.$qs_val.'='.$pkey.'"> '.$pval['label'].'</a></div>';
Geht das denn mit dem eval Befehl?
PHP:
<?php eval (" ?>" . ********? . "<?php "); ?>
Wenn ja wie muss ich den wo hinschreiben?

Vielen Dank schon mal für eure Mühe Gruß Loddar1
 
Hmm, für mich sieht es danach aus, als wolltest du so etwas wie gettext benutzen. Außerdem ist eval() böse (evil).

Trag in die DB ein Tag ein, was durch eine Übersetzer-Funktion läuft. Kann man z.B. über die DB lösen oder auch durch ein mehr-dim Array:

PHP:
$translates = array();
$translates['de']['TAG_LINK_1'] = 'Hier steht das deutsche Label für den ersten Link';
$translates['en']['TAG_LINK_1'] = 'Here is the english label for the first link';

$my_language = 'de';
function translate($label)
{
  return $translates[$my_language][$label];
}

// So anzuwenden:

echo translate('TAG_LINK_1');

// Oder aus der DB:

$result = mysql_query('SELECT ...');
$title = mysql_fetch_array($result);

echo translate($title['label']);
 
Zurück