mal wieder: dynamische Variablen erzeugen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mal wieder: dynamische Variablen erzeugen

    Hallo Leute!

    Ich habe bisher dynamisch vorhandene Variablen auf diese Weise angesprochen:

    PHP-Code:
    $var_name="bar";
    ${
    $var_name}="foo"
    echo $bar//foo 
    Jetzt möchte ich das gleiche in einer Schleife machen, und das klappt einfach nicht:

    PHP-Code:
    //Configurationsparameter laden:
    $get_values="    SELECT name,description,value
                    FROM config
                    WHERE 1"
    ;
    $values=mysql_query($get_values) or die(mysql_error().$get_values);
    while (
    $value1=mysql_fetch_array($values)){
        ${
    $value1["name"]}=$value1["value"];

    In der Spalte stehen die Variablennamen, zum Beispiel "thumb_width". Folglich müsste es nach dem Durchlauf eine Variable

    $thumb_width geben mit einem Wert 200 oder so, der in value steht. Aber diese Variablen werden einfach nicht gesetzt.

    Habe auch folgendes versucht:
    PHP-Code:
    //Configurationsparameter laden:
    $get_values="    SELECT name,description,value
                    FROM config
                    WHERE 1"
    ;
    $values=mysql_query($get_values) or die(mysql_error().$get_values);
    while (
    $value1=mysql_fetch_array($values)){
        
    $var1=$value1["name"] ;
        $
    $var1=$value1["value"];
        

    Das geht allerdings auch nicht.

    Wie kriege ich es hin, die Konfigurationsparameter dynamisch zu laden?

    Danke!

  • #2
    extract

    Find ich aber ziemlich blöd die Variante. Besser ein Array benutzen.

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Wäre vielleicht besser gewesen. Nur steht die Anwendung jetzt und erwartet an diversen Stellen genau diese Variablennamen.

      extract schaue ich mir mal an, danke schon mal.

      Kommentar


      • #4
        sehr cool, extract war genau das, was ich gesucht habe.

        trotzdem wundere ich mich, warum meine Methoden nicht funktioniert haben. hat das was mit dem Array zu tun gehabt?

        Kommentar


        • #5
          Hast du das error_reporting mal hochgedreht?

          Kommentar


          • #6
            PHP-Code:
            while ( $value mysql_fetch_array $values ) ) {
                ${
            $value 'name' ]} = $value 'value' ];

            ?
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              Original geschrieben von tontechniker
              PHP-Code:
              while ( $value mysql_fetch_array $values ) ) {
                  ${
              $value 'name' ]} = $value 'value' ];

              ?
              Wie unterscheidet sich deine Version von meiner?
              PHP-Code:
              while ($value1=mysql_fetch_array($values)){
                  ${
              $value1["name"]}=$value1["value"];

              Außer den Leerzeichen und doppelten Hochkommas...

              Kommentar


              • #8
                Wie unterscheidet sich deine Version von meiner?
                Mal ausprobiert obs funktioniert? Danach mal get_defined_vars ausgeben lassen?
                Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                Kommentar


                • #9
                  Original geschrieben von alex2iceman
                  Wie unterscheidet sich deine Version von meiner?
                  Bei mir funktioniern beide Versionen problemlos. Auch wenn der ganze Code von alex2iceman so wenig Luft enthält, dass ich fast ersticke.
                  Gruss
                  H2O

                  Kommentar

                  Lädt...
                  X