Variablen aus Datenbank in PHP nutzen?!

WebRabbit

Mitglied
Hallo, ich benötige wiedereinmal euren Expertenrat...
Ich habe folgendes Problem:
Ich möchte ein Menü aus einer Datenbank erstellen, dazu habe ich den Link, zugriffsrecht und eine Variable in der Datenbank gespeichert.
Diese Variable wird nun ausgelesen und soll an Hand einer Sprachdatei gegen den Menünamen in der entsprechenden (vorher gesetzten) Sprache ersetzt werden.
PHP:
$menu_res = @mysql_query("SELECT * FROM menu WHERE $userright='1'");
                     while($menu_row = @mysql_fetch_assoc($menu_res)){
                          $content.="                          
                          <li>                          
                              <a href='$_SERVER[PHP_SELF]?$menu_row[link]'>".$menu_row['menuname']."<a>
                          </li>";                              
                          }
Mein Problem ist, das die Variable scheinbar nicht als Variable erkannt wird. Auch der Versuch Sie als variable Variabel (
PHP:
${$menu_row[menuname]}
) anzusprechen hat nicht funktioniert. Selbst wenn ich den Menünamen vorher serialisiere und abspeicher, bekomme ich eine leere Ausgabe wenn ich die Variable mit unserialize() wieder zurücksetze. Liegt es vielleicht daran, dass ich keine direkte Ausgabe mache sondern alles in $content speicher und dann erst gesamt ausgebe? Anmerkung: Die Variable $content wurde natürlcih vorher ordnungsgemäß angelegt und kann daher an dieser Stelle auch mit dem .Operator mit weiteren Daten gefüttert werden.

Vielen Dank für eure Mühe!
 
So ich glaube es hat sich erledigt. eval() hat die Antwort gegeben.
PHP:
 $menu_res = @mysql_query("SELECT * FROM menu WHERE $userright='1'");
                     while($menu_row = @mysql_fetch_assoc($menu_res)){                           
                          $content.="                          
                          <li>                          
                             <a href='$_SERVER[PHP_SELF]?$menu_row[link]'>"; eval("\$menu_row[menuname] = \"$menu_row[menuname]\";");$content.=$menu_row['menuname']; $content.="<a>
                          </li>";
                          }

Vielleicht hat ja noch jemand ne andere Idee oder falls es Sicherheitsbedenken bezüglich eval gibt.. ich bin dankbar für jeden Kommentar oder Hinweis.
Evtl. gibt es ja auch andere Lösungen?
 
Zurück