dynamische Variablen-Namen?

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

  • dynamische Variablen-Namen?

    Hi,

    ich habe in meinem neuen Projekt die Konfig-Datenbank so gegliedert:

    Code:
    Name                      Value
    meta_author               Micronax
    mate_description        Micronax ist ein... bla bla
    Jetzt habe ich eine Funktion geschrieben
    PHP-Code:
    function get_config($name) {
        
    $sql "SELECT
            value
        FROM
            config
        WHERE
            name = '"
    .$name."'";
        
    $result mysql_query($sql) or die(mysql_error());
        
    $row mysql_fetch_array($result);
        
    $name $row["value"];
        return 
    $name;

    Ich möchte, dass die Variable $name immer gleich ist, also das die RETURN Variable so heißt, wie die, die in der Funktion eingegeben wurde. Ist das irgendwie möglich?

    Micronax

  • #2
    ist vor allen dingen unklar.

    eine variable "umzubenennen" ist nicht möglich. aber wozu braucht man das? der buddha hat uns arrays gegeben - nutze sie!

    Kommentar


    • #3
      ginge das nicht irgendwie mit
      PHP-Code:
      function foo($varname)
      {
        return ${
      $varname};
      }

      foo('wurst');
      // Gibt als Variable $wurst wieder? 
      Liebe Grüße,
      SteKoe!

      PHP Tutorials
      Peter Kropff | Quakenet | Schattenbaum.net

      Kommentar


      • #4
        Dann müsste $wurst aber noch in der fkt definiert werden.

        was micro aber wirklich vorhat verstehe ich auch nicht.

        Kommentar


        • #5
          Dann halt so:

          PHP-Code:
          function get_config($name) {
              
          $sql "SELECT
                  value
              FROM
                  config
              WHERE
                  name = '"
          .$name."'";
              
          $result mysql_query($sql) or die(mysql_error());
              
          $row mysql_fetch_array($result);
              ${
          $name} = $row["value"];
              return ${
          $name};

          Den Sinn erschliessen kann ich auch nicht, aber es müsste funktionieren?
          Liebe Grüße,
          SteKoe!

          PHP Tutorials
          Peter Kropff | Quakenet | Schattenbaum.net

          Kommentar


          • #6
            Er hat scheinbar eine Datenbanktabelle mit den configs. Und wenn er jetzt die Spalte "language" hat, möchte er mit der Funktion erreichen, dass anschließend der Inhalt dieser Spalte auf der Variable $language gespeichert ist.

            Und das was stekoe2000 gepostet hat, müsste hinhauen...
            [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

            Kommentar


            • #7
              Nein ich habe eine spalte name und eine value.

              Das ganze soll viel dynamischer werden. Also kann ich praktisch ohne pma neue admin funktionen hinzufügen (is ja ned so wichtig). Aber ich will damit erreichen, dass ich ned immer das komplette query eingeben muss sondern einfach nur noch get_config("meta_athor");. Dann hab ich die rückgabe-var $metha_author. Dann leg ich das global über includes fest und fertig. Später kommen halt noch mehr einstellungen (reihen) hinzu.

              Kommentar


              • #8
                Original geschrieben von micronax
                Nein ich habe eine spalte name und eine value.

                Das ganze soll viel dynamischer werden. Also kann ich praktisch ohne pma neue admin funktionen hinzufügen (is ja ned so wichtig). Aber ich will damit erreichen, dass ich ned immer das komplette query eingeben muss sondern einfach nur noch get_config("meta_athor");. Dann hab ich die rückgabe-var $metha_author. Dann leg ich das global über includes fest und fertig. Später kommen halt noch mehr einstellungen (reihen) hinzu.
                und dann für jede Einstellung einen Query absetzen, weil jeder durch ein WHERE begrenzt wird, obwohl du vielleicht doch alle Einträge brauchst? Irgendwie ressourcen-fressend...

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

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

                Kommentar


                • #9
                  PHP-Code:
                  global $($name); ? 

                  Kommentar


                  • #10
                    Original geschrieben von ghostgambler
                    und dann für jede Einstellung einen Query absetzen, weil jeder durch ein WHERE begrenzt wird, obwohl du vielleicht doch alle Einträge brauchst? Irgendwie ressourcen-fressend...
                    Könnte man dann ja so machen, dass die Funktion ein Array mit den Spaltennamen als Parameter nimmt.
                    Daraus bastelt man sich dann ein "IN(..., ...)" für die WHERE-Klausel.
                    Und dann liest man die values aus den einzelnen Sätzen aus, und gibt diese als (assoziatives) Array als Funktionsergebnis zurück.

                    (Und wenn man dann außerhalb der Funktion immer noch Angst vor Arrays hat, muss man ja auch kein Array für die Konfig-Variablen benutzen, sondern könnte sich per list() einzelne Variablen draus machen ...)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar

                    Lädt...
                    X