phpbar.de logo

Mailinglisten-Archive

[php] mehrdimensionales Array aus einer DB

[php] mehrdimensionales Array aus einer DB

Stefan Schwardt php_(at)_phpcenter.de
Sun, 10 Jun 2001 01:36:14 +0200


Moin Andre Domaschhke, moin Liste


AD> Bis hier hin lief bereits alles. Da es sich bei meinem Vorhaben
AD> um eine Begriffserklärung handelt, benötige ich jetzt noch den
AD> Link, den ich mit der ID aus der sql DB realisieren will.
AD> d.h. ich muss in den Elementen auch noch ein zusätzliches Array
AD> reinstecken wo die ID enthalten ist. Diese muss ich aber im Link
AD> auch wieder einzeln ansprechen können.
Vielleicht habe ich Deine Problemstellung falsch verstanden, aber ich
glaube, Du machst es Dir zu kompliziert.

AD> while ($download = mysql_fetch_array($download2))
AD> {
AD>       $abc[] = $download ['begriff'];
AD> }
Warum baust Du das Array abc[] so auf? Du erzeugst bekommst von
fetch_array ein Array download[] mit x Elementen (x Anzahl der Spalten
in der Tabelle $tb_glossar). Daraus nimmst Du Dir das aktuelle Element
"begriff" und baust damit ein neues Array mit einer Spalte und n
Zeilen auf (n für Anzahl Suchergebnisse).
Du willst aber mehr als eine Spalte - also
vergiss doch einfach das zweite Array abc[] und verwende gleich das
erste, bereits vollständige. Du mußt nur noch dafür sorgen, daß in
jedem Durchlauf das Ergebnis in eine neue Zeile des Array kommt:

while ($download[] = mysql_fetch_array($download2))
{
}

oder etwas nachvollziehbarer:

$x=0;
while ($download[$x] = mysql_fetch_array($download2))
{
      $x++;
}


Nun hast Du das Ergebnis Deiner Datenbankabfrage vollständig in dem
Array download[][] abgebildet - in der Hoffnung es möge nicht allzu groß
werden...
Deinen Begriff aus der ersten Ergebniszeile bekommst Du mittels
$download[0]["begriff"], die dazugehörige ID mit $download[0]["id"].
Da im letzten Beispiel ein Zähler mitläuft, hat $x nach Durchlauf der
Schleife sogar den Index des letzten Elementes,
$download[$x]["begriff"]
läßt Dich also sogar gleich auf das letzte Element zugreifen.

AD> Nun mein Versuch mit einem zweidimensionalen Array
AD> (glaube ich zumindest das dies eins ist) [...]
AD> while ($download = mysql_fetch_array($download2))
AD> {
AD> $abc[0] = $download ['begriff'];
AD> $abc[1] = $download ['id'];
AD> }
Nein, denn wo ist Deine zweite Dimension? Hier weist Du in jedem
Durchlauf dem ersten und zweiten Element Deines (eindimensionalen)
Array einen anderen Wert zu - und überschreibst dabei den vorherigen.

Hoffe es hilft zum Verständnis, ansonsten erstmal drüber schlafen, wirkt manchmal
wunder.


PS: Du könntest Dir das Leben auch sehr viel einfacher machen, wenn Du
dafür sorgst, daß aus der SQL-Query gleich nur das erste und letzte
Element herauskommt - aber das ist eine andere Geschichte...

--
Stefan Schwardt.




php::bar PHP Wiki   -   Listenarchive