Mit PHP gesamte Tabelle auslesen
Eric Teubert
- datenbank
Hi,
ich möchte mit per PHP eine komplette Tabelle in ein Array einlesen. Alles, was ich erreiche, ist aber nur die jeweils erste Zeile des tables. Natürlich könnte ich mit einer Schleife jede Zeile einzeln durchgehen aber dann hätte ich ja Hunderte Querrys für nur eine Abfrage - das muss doch auch anders gehen, oder?
Danke im Voraus
Eric
Hi,
die Schleife ist da schon der richtige Ansatz.
$result = mysql_query("QUERY");
while($rows = mysql_fetch_array($result))
{
// in $row liegen jetzt die Daten der jeweiligen Datenbank-Tabellen-Zeile
// schreibe die in ein Array
}
mfg
Knusperklumpen
Hallo
Hi,
die Schleife ist da schon der richtige Ansatz.$result = mysql_query("QUERY");
while($rows = mysql_fetch_array($result))
{
// in $row liegen jetzt die Daten der jeweiligen Datenbank-Tabellen-Zeile
// schreibe die in ein Array
}
Wozu? Sie ist schon in einem Array. $result
beinhaltet alle Zeilen, $row
jeweils eine mit allen Feldern als Arrayelemente. Ein zweidimensionales Array eben.
Tschö, Auge
hi,
$result = mysql_query("QUERY");
$result
beinhaltet alle Zeilen
Nö, $result enthält eine "Resource ID".
Ein zweidimensionales Array eben.
Nö, eben nicht.
gruß,
wahsaga
Hallo
hi,
$result = mysql_query("QUERY");
$result
beinhaltet alle ZeilenNö, $result enthält eine "Resource ID".
Ja, richtig. Asche auf's Haupt, ungenau/falsch formuliert.
Ich ging natürlich davon aus, dass diese Variable auf dem üblichen Weg (mysql_fetch_array
, mysql_fetch_assoc
, etc.) behandelt wird und das dies keiner weiteren Erwähnung bedarf.
Wenn es mehrere Zeilen gibt, werden die ja mit einer Schleife ausgegeben. Ab dann kann man sie wie ein normales Array behandeln. Damit erübrigt sich im Normalfall die Übertragung der Daten in ein weiteres Array, wie es Knusperklumpen vorschlug.
Jede Zeile liegt nach dem Beispiel in der Variable $row
vor, welche wiederum ein assoziatives Array (Feldname=>Feldwert) der Zeile ist.
Diese Struktur meine ich, wenn ich in diesem Zusammenhang von einem zweidimensionalen Array schreibe.
Tschö, Auge
hi,
Wenn es mehrere Zeilen gibt, werden die ja mit einer Schleife ausgegeben. Ab dann kann man sie wie ein normales Array behandeln.
mit mysql_fetch_array() hast du _einen_ Datensatz in einem Array vorliegen.
Wenn du diesen in $datensatz speicherst, überschreibst du dir dies aber im nächsten Schleifendurchlauf wieder.
Also musst du, wenn du die Daten auch nach der Schleife noch zur Verfügung haben willst, $datensatz als Array anlegen, und dann $datensatz[] = mysql_fetch_array() o.ä. machen.
Damit erübrigt sich im Normalfall die Übertragung der Daten in ein weiteres Array, wie es Knusperklumpen vorschlug.
Sie hat sich nicht erübrigt, sondern genau das entspricht dem, was ich oben schrieb.
Jede Zeile liegt nach dem Beispiel in der Variable
$row
vor, welche wiederum ein assoziatives Array (Feldname=>Feldwert) der Zeile ist.
Nein, siehe oben.
Diese Struktur meine ich, wenn ich in diesem Zusammenhang von einem zweidimensionalen Array schreibe.
Ein zweidimensionales Array liegt hier _nicht_ vor, so lange du nicht selber explizit eins erstellst.
gruß,
wahsaga
Hi,
Danke für die kleine Diskussionsrunde, hat mir weitergeholfen - habe die Methode eigentlich schon etliche Male benutzt aber ... manchmal hat man doch ein Brett vor'm Kopf :-/
Danke nochmals
MfG
Eric
Hallo
mit mysql_fetch_array() hast du _einen_ Datensatz in einem Array vorliegen.
Wenn du diesen in $datensatz speicherst, überschreibst du dir dies aber im nächsten Schleifendurchlauf wieder.
Ja und? Eric will mit einem Query alle Datensätze aus einer Tabelle auslesen um mit ihnen arbeiten/sie anzeigen/(was weiß ich) zu können. Er will dazu ein Array haben. Er kann also die Ergebnisse per while() durchgehen und direkt mit den Ergebnissen arbeiten, oder diese in ein neues Array überführen und dann mit diesem arbeiten.
Die Frage ist doch nur, ob es der nachher auzuführende Arbeitsschritt notwendig macht, die Ergebnisse der Datenbankabfrage in ein neues Array umzulagern, oder ob die direkte Arbeit am Abfrageergebnis effektiver ist.
Tschö, Auge
hi,
Ja und?
Was "ja und"?
Deine Analyse, was Eric wohl will, ist unbestritten.
Nur deine Aussagen bzgl. eines zweidimensionalen Array waren schlichtweg falsch.
gruß,
wahsaga