MYSQL Datensatz auslesen, ausgeben ohne Name, Bezeichn zu kennen
Maria
- datenbank
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
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
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
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.
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
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.
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
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?
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.
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