Ich habe andere Fragen zum Lesen von Arrays in PHP gelesen und die vorgeschlagenen Lösungen implementiert, aber diese scheinen für mich nicht zu funktionieren ... Mein Array sieht folgendermaßen aus:

 { 
    [0]=> array(6) 
    {   ["name"]=> string(9) "Test04Feb" [0]=> string(9) "Test04Feb" 
        ["paymentvalue"]=> string(6) "500.00" [1]=> string(6) "500.00" 
        ["transactiondate"]=> string(19) "2020-02-05 13:29:37" [2]=> string(19) "2020-02-05 13:29:37" 
    }

    [1]=> array(6) 
    {   ["name"]=> string(9) "Test04Feb" [0]=> string(9) "Test04Feb" 
        ["paymentvalue"]=> string(7) "1500.00" [1]=> string(7) "1500.00" 
        ["transactiondate"]=> string(19) "1970-01-01 05:30:00" [2]=> string(19) "1970-01-01 05:30:00" 
    } 

    [2]=> array(6) 
    {   ["name"]=> string(9) "Test04Feb" [0]=> string(9) "Test04Feb" 
        ["paymentvalue"]=> string(5) "90.00" [1]=> string(5) "90.00" 
        ["transactiondate"]=> string(19) "2020-02-05 18:12:18" [2]=> string(19) "2020-02-05 18:12:18" 
    } 
} 

Und nichts davon funktioniert für mich: -

  $stmt1->execute([$myname]);
  $value = $stmt1->fetchAll();
 ...
    foreach ($stmt1 as $row1) { 
         echo $row1[0]->name;
         echo $row1['0']['transactiondate'];
         echo $row1[0]['paymentvalue'];
    }

Jede Hilfe wäre sehr dankbar, danke.

2
burf 8 Feb. 2020 im 11:04

3 Antworten

Beste Antwort

In Ihrem Fall ist $row1 ein Array, wie in Ihrem Dump angegeben. In foreach sollte $value und nicht $stmt verwendet werden. Dann:

foreach ($value as $row1) { 
    echo $row1['name'];
}

P.S. Wenn Sie nur assoziative Schlüssel erhalten möchten, verwenden Sie Folgendes:

$value = $stmt1->fetchAll(PDO::FETCH_ASSOC);
1
Efim Tarasenko 8 Feb. 2020 im 08:35

Verwenden

foreach ($stmt1 as $row1) { 

$row1 ist jeder einzelne Datensatz aus der Datenbank. Anstatt [0] wie in Ihrem Code verwenden zu müssen, sollten Sie daher einfach ...

echo $row1->name;

Etc.

Um dies selbst zu überprüfen, verwenden Sie etwas wie print_r($row1); in der Schleife, um zu sehen, mit was jede Schleife arbeiten muss.

2
Nigel Ren 8 Feb. 2020 im 08:11

Versuchen Sie dies, wenn Sie foreach verwenden

foreach ($stmt1 as $row1) { 
         echo $row1['name'];    
    }

Oder Sie können verwenden

echo $stmt1[0]['name'];

Hoffe das hilft dir

0
mail2bapi 8 Feb. 2020 im 08:15