mehrdemensionales Array aus Datenbank auslesen mit php?
Hallo ich programmiere mit einem kleinem Team eine Onboarding Website für Mitarbeiter. Allerdings haben wir ein Problem beim auslesen unserer Datenbank. wir haben uns mit dem fronted Team abgesprochen dass wir die Daten per Array übergeben. Nun haben wir uns die daten per Array ausgeben lassen, per foreach schleife ausgeben lassen und zurück in mehrdemsionales Array gepackt. Allerdings können wir dieses nur per var_dump ausgeben und nicht mithilfe einer foreach Schleife normal per echo.
Wie können wir das umbauen?
Hier der aktuelle Code:
<?php
function getdata() {
$pdo = new PDO('mysql:host=localhost; dbname=t-systems', 'root', '', [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
$stmt = $pdo->prepare('SELECT * FROM `user`');
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $result) {
$Ort = $result['Ort Name'];
$ID_User = $result['ID'];
$Vorname = $result['Vorname'];
$Nachname = $result['Nachname'];
$Telefonnummer = $result['Telefonnummer'];
$mail = $result['Email'];
$PLZ = $result['Plz'];
$Straße = $result['Strasse'];
$Hausnummer = $result['Hausnummer'];
$userdata[] = [$Ort, $ID_User, $Vorname, $Nachname, $Telefonnummer, $mail, $PLZ, $Straße, $Hausnummer];
}
var_dump($userdata);
}
Danke fürs weiterhelfen
1 Antwort
Um ein mehrdimensionales Array auszugeben, brauchst Du auch zwei Schleifen.
$userdata[x] ist ja ein Array. Um also die einzelnen Elemente des Arrays auszugeben, musst Du das aktuelle Array ebenfalls indizieren, also $userdata[x][y].
Um nacheinander alle Elemente aller Arrays in $userdata auszugeben, brauchst Du also folgenden Code (mein PHP ist etwas eingerostet, kann sein, dass das syntaktisch nicht völlig stimmt):
for ($x = 0; $x < count($userdata); $x++) {
for ($y = 0; $y < count($userdata[$x]; $y++) {
// Ausgabe von $userdata[$x][$y]
}
}