PHP: Mehrdimensionales Array auslesen

Diskutiere PHP: Mehrdimensionales Array auslesen im Web & Grafik Forum im Bereich Internet & Telekomunikation Forum; Hallo, leider eine etwas dämliche Frage, aber ich finde keine Antwort auf mein Problem. Über eine Datenbankabfrage erstelle ich ein...
  • PHP: Mehrdimensionales Array auslesen Beitrag #1
D

Desperado_11

Bekanntes Mitglied
Dabei seit
09.12.2001
Beiträge
299
Reaktionspunkte
0
Hallo,

leider eine etwas dämliche Frage, aber ich finde keine Antwort auf mein Problem. Über eine Datenbankabfrage erstelle ich ein mehrdimensionales
Array. Nun möchte ich dies gezielt auslesen, bekomme aber immer nur einen Buchstaben ausgegeben???

Hier mein Codeansatz:

PHP:
$abfrage = "SELECT * FROM navigation WHERE art='1' ORDER BY 'position' ASC";
$ergebnis = mysql_query($abfrage);
$i = 0;
$nav_header = array();
while($row = mysql_fetch_object($ergebnis))
    {
        $nav_header["text"] = $row->text;
        $nav_header["url"] = $row->url;
        $i++;
    }
echo $nav_header["text"][2];
 
  • PHP: Mehrdimensionales Array auslesen Beitrag #2
Obby

Obby

Bekanntes Mitglied
Dabei seit
22.12.2000
Beiträge
2.386
Reaktionspunkte
5
Ort
beautiful Hövelhof
Interessant wäre mal ein Minimalbeispiel oder ein var_dump des Arrays. Schreib dann bitte auch nochmal genau hin, was du aus dem Array auslesen willst.

Gruß
 
  • PHP: Mehrdimensionales Array auslesen Beitrag #3
Lambo-Benni

Lambo-Benni

Bekanntes Mitglied
Dabei seit
23.03.2007
Beiträge
7.601
Reaktionspunkte
3
Ort
Medizinmanndiscount
Code:
echo "<pre>";
print_r($nav_header);
echo "<pre>";

So bekommst Du eine lesbare echo-Ausgabe eines x-beliebigen Arrays.
 
  • PHP: Mehrdimensionales Array auslesen Beitrag #4
Obby

Obby

Bekanntes Mitglied
Dabei seit
22.12.2000
Beiträge
2.386
Reaktionspunkte
5
Ort
beautiful Hövelhof
Ah, jetzt hab ichs.
War heute morgen noch nen bisschen zu müde. Sorry.
PHP:
$abfrage = "SELECT * FROM navigation WHERE art='1' ORDER BY 'position' ASC";
$ergebnis = mysql_query($abfrage);
$i = 0;
$nav_header = array();
while($row = mysql_fetch_object($ergebnis))
    {
        $nav_header["text"] = $row->text; #Hier überschreibst du den letzten Wert immer...*/
        $nav_header["url"] = $row->url; #Hier auch
        $i++; #Was macht das i?
        #besser
        $nav_header['text'][] = $row->text;
        $nav_header['url'][] = $row->url;
        
    }
echo $nav_header["text"][2];

Gruß
 
  • PHP: Mehrdimensionales Array auslesen Beitrag #5
Lambo-Benni

Lambo-Benni

Bekanntes Mitglied
Dabei seit
23.03.2007
Beiträge
7.601
Reaktionspunkte
3
Ort
Medizinmanndiscount
Ich hatte mir den Code heute Morgen auch nicht angeschaut. :D

Aber dann doch gleich so (geändert habe ich Zeilen 13 und 14):

PHP:
$abfrage = "SELECT * FROM navigation WHERE art='1' ORDER BY 'position' ASC";
$ergebnis = mysql_query($abfrage);
$i = 0;
$nav_header = array();
while($row = mysql_fetch_object($ergebnis))
    {
        $nav_header["text"] = $row->text; #Hier überschreibst du den letzten Wert immer...*/
        $nav_header["url"] = $row->url; #Hier auch
        #besser
        $nav_header['text'][$i] = $row->text; //added $i as index of array
        $nav_header['url'][$i] = $row->url; //added $i as index of array
        $i++; //incement $i after first loop, so it begins with 0
        
    }
echo $nav_header["text"][2];
 
  • PHP: Mehrdimensionales Array auslesen Beitrag #6
Obby

Obby

Bekanntes Mitglied
Dabei seit
22.12.2000
Beiträge
2.386
Reaktionspunkte
5
Ort
beautiful Hövelhof
Ok, aber wofür das i dann überhaupt noch benutzen?
Das ist doch komplett ohne Sinn. das array wird oben frisch initialisiert, i wird nur inkrementiert. Also kann er auch einfach mit [] ein neues Element an das Array anfügen. Spart eine Variable(und damit Ausführungszeit). Das fällt in diesem Script zwar nicht ins Gewicht, aber mit sowas sollte man sich früh anfreunden.
 
  • PHP: Mehrdimensionales Array auslesen Beitrag #7
Lambo-Benni

Lambo-Benni

Bekanntes Mitglied
Dabei seit
23.03.2007
Beiträge
7.601
Reaktionspunkte
3
Ort
Medizinmanndiscount
Ok, aber wofür das i dann überhaupt noch benutzen?
Das ist doch komplett ohne Sinn. das array wird oben frisch initialisiert, i wird nur inkrementiert. Also kann er auch einfach mit [] ein neues Element an das Array anfügen. Spart eine Variable(und damit Ausführungszeit). Das fällt in diesem Script zwar nicht ins Gewicht, aber mit sowas sollte man sich früh anfreunden.
Vorweg: ich habe mich nicht genau informiert, was die Funktion mysql_fetch_object() genau macht und weiß es nicht mit 100% Sicherheit aus dem Kopf.


Ich würde es wohl folgendermaßen lösen:

PHP:
$abfrage = "SELECT * FROM navigation WHERE art='1' ORDER BY 'position' ASC";
$ergebnis = mysql_query($abfrage);
$i = 0;
$nav_header = array();
/** Input **/
while($row = mysql_fetch_object($ergebnis)) {
    // add data to array
    $nav_header['text'][$i] = $row->text; 
    $nav_header['url'][$i] = $row->url; 
    $i++;
}
/** Output **/
for ($j=0;$j<=$i;$j++) {
    echo $j.". ".$nav_header['text'][$j]."\n";
    echo $j.". ".$nav_header['url'][$i]."\n";
}
bzw. je nachdem, wofür ich die Ausgabe brauche.
 
Thema:

PHP: Mehrdimensionales Array auslesen

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben