PHP: JSON in CSV konvertieren

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

canju

Mitglied
Es scheint als hätte ich es jetzt mit einer foreach schleife hinbekommen.
Falls nochmal ein Newbie wie ich auf der suche nach Ähnlichem ist:

Die for schleife "einfach" durch eine foreach schleife ersetzen

PHP:
foreach ($data as $row) {
  //get data details
  $id = $row['id'];
  $commission = $row['transactionParts'][0]['commissionAmount'];

  // replace empty fields with null
  if($id == '' OR !isset($id)){$id = null;};
  if($commission == '' OR !isset($commission)){$commission = null;};

  //insert into mysql table
    $insert_data = <<<SQL
    INSERT INTO $table_name(
                  id,
                  commission
                )
                VALUES(
                  '$id',
                  '$commission'
                )
    SQL;

    $result = mysqli_query($db, $insert_data);
    if ($result == false) {
        echo 'Error description \n' . mysqli_error($db);
    }
}
 

basti1012

Erfahrenes Mitglied
Du hättest hier
PHP:
$id = $data[0]['id'];
$commission = $data[0]['transactionParts'][0]['commissionAmount'];
in geändert
$id = $data[$i]['id'];
$commission = $data[$i]['transactionParts'][0]['commissionAmount'];
Das hätte gereicht.
Die for schleife "einfach" durch eine foreach schleife ersetzen
Das geht natürlich auch.
Kommen den jetzt alle Einträge in der DB an ?
 

canju

Mitglied
Du hättest hier
PHP:
$id = $data[0]['id'];
$commission = $data[0]['transactionParts'][0]['commissionAmount'];
in geändert
$id = $data[$i]['id'];
$commission = $data[$i]['transactionParts'][0]['commissionAmount'];
Das hätte gereicht.

Das geht natürlich auch.
Kommen den jetzt alle Einträge in der DB an ?

Ja, die Daten kommen jetzt rein.

Das:
PHP:
$id = $data[$i]['id'];
$commission = $data[$i]['transactionParts'][0]['commissionAmount'];
hatte ich auch probiert, hat aber nicht funktioniert, da so wie ich das verstanden habe die [0] die "Tiefe" des arrays angibt und nicht die "Zeilenanzahl".
 

Sempervivum

Erfahrenes Mitglied
da so wie ich das verstanden habe die [0] die "Tiefe" des arrays angibt und nicht die "Zeilenanzahl".
Nein, das trifft nicht zu, dieses [0] ist der Index bzw. die Nummer des Elementes im Array. $data[0] wäre demnach das erste Element und $data[1] das zweite usw.
Ich stimme mit Basti überein das es so auch funktionieren müsste.
 

canju

Mitglied
Ok, mein fehler, dann hab ich bestimmt irgendwas falsch gemacht. Mit foreach klappts jetzt zum glück. Danke euch beiden,
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge