Maria: MYSQL Datensatz auslesen, ausgeben ohne Name, Bezeichn zu kennen

Ich gebe eine Tabelle so aus:

$sql =  "SELECT name,vorname FROM table";
$result = mysql_query($sql)or die($sql.'<br>'.mysql_error());

while ($row = mysql_fetch_object($result))
{
echo row->name;
echo row->vorname;
}

wenn ich alle Felder ausgeben möchte mache ich es so

$sql =  "SELECT * FROM table";

aber wie bekomme ich dann die Ausgabe in der while Schleife hin, wenn ich * setzn und nicht die Bezeichner weis?

Maria

  1. Hello,

    dann lass Dir doch mal anzeigen, wie die gelieferten Strukuren aussehen:

    $sql =  "SELECT * FROM table";
    $result = mysql_query($sql) or die($sql.'<br>'.mysql_error());

    if ($row = mysql_fetch_object($result))
    {
        var_dump($row);
    }

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bikers-lodge.com
    1. Hello,

      dann lass Dir doch mal anzeigen, wie die gelieferten Strukuren aussehen:

      $sql =  "SELECT * FROM table";
      $result = mysql_query($sql) or die($sql.'<br>'.mysql_error());

      if ($row = mysql_fetch_object($result))
      {
          var_dump($row);
      }

      mal ganz dumm in die Runde gefragt:
      PHP lässt hier ja auch die Ausgabe des Objektes mit foreach() zu.

        
      foreach($row as $key => $value)  
      {  
          echo "['$key'] => $value\r\n";  
      }  
      
      

      Das ist doch aber eigentlich ein Paradigmenbruch?

      Kann mir einer die Methode nennen, die man hier eigentlich benutzen müsste, um über $row zu iterieren?

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bikers-lodge.com
      1. Tach!

        PHP lässt hier ja auch die Ausgabe des Objektes mit foreach() zu.
        Das ist doch aber eigentlich ein Paradigmenbruch?

        Und wenn schon, stört es dich? Du könntest auch mit Reflection ein Array der Felder ermitteln und darüber iterieren. Wäre das auch ein Bruch? Das Ergebnis wäre dasselbe, aber ungleich aufwendiger.

        Kann mir einer die Methode nennen, die man hier eigentlich benutzen müsste, um über $row zu iterieren?

        Hat der ChrisB schon 6 Stunden zuvor.

        dedlfix.

        1. Hello,

          PHP lässt hier ja auch die Ausgabe des Objektes mit foreach() zu.
          Das ist doch aber eigentlich ein Paradigmenbruch?

          Und wenn schon, stört es dich? Du könntest auch mit Reflection ein Array der Felder ermitteln und darüber iterieren. Wäre das auch ein Bruch? Das Ergebnis wäre dasselbe, aber ungleich aufwendiger.

          Kann mir einer die Methode nennen, die man hier eigentlich benutzen müsste, um über $row zu iterieren?

          Hat der ChrisB schon 6 Stunden zuvor.

          War das eine Methode des Standard-Datenbank-Objektes von PHP? Das kann ich jetzt überhaupt nicht erkennen.

          Ich wüsste gerne, ob es hier in PHP auch eine gewisse Konsistenz gibt. Dann müsste ja irgendwie eine Objekt-Hierarchie und -Dokumentation zufinden sein zu dem Thema. Ich wäre da dankbar für Hinweise. Ich bin leider nicht mehr auf dem Laufenden.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bikers-lodge.com
          1. Tach!

            Kann mir einer die Methode nennen, die man hier eigentlich benutzen müsste, um über $row zu iterieren?
            Hat der ChrisB schon 6 Stunden zuvor.
            War das eine Methode des Standard-Datenbank-Objektes von PHP? Das kann ich jetzt überhaupt nicht erkennen.

            Ich interpretierte Methode im Sinne von "wie man es machen kann", nicht als Methode im OOP-Sinne. PHP kann über die Eigenschaften eines Objekts iterieren, da braucht es keine Methode im OOP-Sinne. Wenn du allerdings eines Paradigmas willen nur über Arrays iterieren möchtest, dann nimm *_fetch_assoc() zum Abfragen der Daten.

            dedlfix.

            1. Hello,

              Ich interpretierte Methode im Sinne von "wie man es machen kann", nicht als Methode im OOP-Sinne. PHP kann über die Eigenschaften eines Objekts iterieren, da braucht es keine Methode im OOP-Sinne. Wenn du allerdings eines Paradigmas willen nur über Arrays iterieren möchtest, dann nimm *_fetch_assoc() zum Abfragen der Daten.

              Das ist mir doch bekannt.

              Ich frage mich nur, wzu es *_fetch_object() gibt, wenn man mit dem Ergebnis dann nichts weiter damit machen kann im Sinne von OOP. Dass das Objekt auch mit foreach() durchlaufbar ist, ist mir schon klar, aber das ist doch eher eine Krücke.

              Liebe Grüße aus dem schönen Oberharz

              Tom vom Berg

              --
               ☻_
              /▌
              / \ Nur selber lernen macht schlau
              http://bikers-lodge.com
              1. Meine Herren!

                Ich frage mich nur, wzu es *_fetch_object() gibt, wenn man mit dem Ergebnis dann nichts weiter damit machen kann im Sinne von OOP.

                Man kann _fetch_object optional auch einen Klassennamen übergeben. Diese Klasse wird dann entsprechend instanziiert. Beantwortet das deine Frage?

                --
                “All right, then, I'll go to hell.” – Huck Finn
              2. Tach!

                Ich frage mich nur, wzu es *_fetch_object() gibt, wenn man mit dem Ergebnis dann nichts weiter damit machen kann im Sinne von OOP. Dass das Objekt auch mit foreach() durchlaufbar ist, ist mir schon klar, aber das ist doch eher eine Krücke.

                Wenn du iterieren möchtest, ist vielleicht ein Objekt nicht gerade die erste Wahl. Wenn du die Feldnamen nicht weißt, kannst du ja dann auch nur über variable Variablen zugreifen. Das wird nicht besser. In ein Objekt zu fetchen, hat andere Stärken.

                dedlfix.

  2. Hi,

    wenn ich alle Felder ausgeben möchte mache ich es so

    $sql =  "SELECT * FROM table";

    Dass man das im Normalfall *nicht* machen sollte, weißt du?

    Faustregel lautet: Benenne alle Spalten, die du auslesen willst, explizit.

    aber wie bekomme ich dann die Ausgabe in der while Schleife hin, wenn ich * setzn und nicht die Bezeichner weis?

    Indem du den Datensatz z.B. als assoziatives Array fetchtst, und dann mit einer foreach-Schleife über die einzelnen Einträge läufst.

    MfG ChrisB

    --
    Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/