Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL Spaltennamen per Variable ansprechen

Einklappen

Neue Werbung 2019

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

  • MySQL Spaltennamen per Variable ansprechen

    Hallo,

    ich sitze hier von einem Problem beim "dynamischen" Ansprechen eines Objekts.

    Ich möchte meine komplette Datenbank auf meiner Website abbilden.
    Mein erster Schritt --> SHOW TABLES --> liefert mir die einzelnen Tabellen
    Mein zweiter Schritt --> SHOW COLUMNS von den jeweils gelieferten TABLES --> liefert mit den Aufbau der einzelnen Tabellen.

    Soweit, so gut: Ich habe nun schon die einzelnen Tabellen sowie deren Spaltennamen.

    Nun möchte ich die Inhalte per SELECT * auslesen lassen, funktioniert auch soweit, jedoch bekomme ich nun beim Ansprechen des jeweiligen Objekts ein Problem, da meine Spaltennamen ja Variablen sind:

    PHP-Code:
    $command "SELECT * FROM TABLE_X";
    $result mysql_query($command);
    for(
    $i=0;$data mysql_fetch_object($result);$i++)
    {
      
    $value[$i] = $data->$COLUMN_X//<--- das funktioniert logischweise nicht, aber so in etwa brauche ich es...

    Wie hole ich die Daten aus dem $data-Objekt, wenn die Spaltennamen in Variablen gespeichert sind?

    Kennt sich da jemand aus?
    Gäbe es evtl eine Möglichkeit, die ganzen Inhalte nicht als Objekt, sondern per mysql_fetch_row() auslesen zu lassen und dann per $data[$i] oder so ähnlich die Inhalte zu bekommen?

    Ich hoffe jemand kennt sich da aus

    Lg

  • #2
    Statt fetch_object ein fetch_assoc nehmen und dann geht's per Index
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Warum sollten Spaltennamen Variablen sein? (Selbst wenn, es würde vermutlich auch dann funktionierten.) Lass einfach das $ nach dem -> weg.

      Edit: Hier ein Beispiel WIE dynamisch du das ganze machen kannst in PHP:
      PHP-Code:
      <?php
      class foo {
          public 
      $d "Hallo Welt";
      }

      $object = new foo();
      $a "b";
      $b "c";
      $c "d";
      echo 
      $object->$$$a;
      // Ausgabe: Hallo Welt
      Sinn? Keiner. Und bei dir ergibt es wohl auch nicht viel mehr.

      Kommentar


      • #4
        Zitat von K.Beutler Beitrag anzeigen
        Wie hole ich die Daten aus dem $data-Objekt, wenn die Spaltennamen in Variablen gespeichert sind?
        Das wird genauso gemacht wie du das gepostet hast...

        Kommentar


        • #5
          Schau dir doch das Beispiel an: http://php.net/manual/de/function.my...bject-examples
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Hallo,

            vielen Dank für die zahlreichen Antworten und entschuldigt bitte meinen verspäteten Post...

            Statt fetch_object ein fetch_assoc nehmen und dann geht's per Index
            Jap hat tatsächlich funktioniert, ich hätte meinen Gedankengang gleich so umsetzen sollen!

            Warum sollten Spaltennamen Variablen sein? (Selbst wenn, es würde vermutlich auch dann funktionierten.) Lass einfach das $ nach dem -> weg.[...]
            Sinn? Keiner. Und bei dir ergibt es wohl auch nicht viel mehr.
            Na der Sinn ergibt sich doch aus meinem Vorhaben, oder? Es geht hier schließlich auch nicht darum, die Spaltennamen variabel zu machen, sondern die fixen Spaltennamen in Variablen einzulesen und diese Variablen als Pointer zu verwenden...
            Aber wie gesagt, per Array-Index funktioniert es super ..

            Lg

            Kommentar

            Lädt...
            X