Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JSON][PHP][MySQL] Przesył danych z JSON przez PHP do SQL
Forum PHP.pl > Forum > Przedszkole
.Wojtek
Cześć,
chciałbym porposić o pomoc w przesyle danych z JSON do SQL. Plik data.json z bazą JSON, wygląda następująco:

Kod
{
    "Data 1": {
        "Text1": "Anything1",
        "Text2": "Anything2",
        "Text3": "Anything3",
        "Text4": "Anything4"
    },
    "Data 2": {
        "DATE 1": {
            "1.": "145",
            "2.": "258",
            "3.": "542"
        },
        "DATE 2": {
            "1.": "428",
            "2.": "528",
            "3.": "755"
        },
        "DATE 3": {
            "1.": "727",
            "2.": "514",
            "3.": "425"
        }
    }
}


Chciałbym powyższe dane przesłać do bazy danych SQL w następujących kolumnach tabeli:
Kod
DATE
1.
2.
3.
Gdzie "DATE" to kolejna data z numerami 1, 2, 3.

Na razie mam taki kod i nie wiem co dalej:
  1. <?php
  2. $db = new PDO('mysql:host=localhost;dbname=test','root','');
  3. $jsonData = file_get_contents('data.json');
  4. $data = json_decode($jsonData, true);
  5.  
  6. $stmt = $db->prepare("insert into test2 values(?,?,?,?)");
  7.  
  8. foreach ($data as $row) {
  9. //$stmt->bindParam(1,$row ? );
  10. $stmt->execute();
  11. }
  12. ?>
leonpro778
Zrób sobie var_dump($data) i zobacz jaką tablicę Tobie zwraca. Rozumiem, że chcesz uzyskać tabelę mniej więcej podobną do tego?

DATE (int) | 1 (int) | 2 (int) | 3 (int)
1 | 145 | 258 | 542
2 | 428 | 528 | 755
itd.

.Wojtek
@leonpro778 prawie:

DATE (varchar) | 1 (int) | 2 (int) | 3 (int)
Date 1 | 145 | 258 | 542
Date 2 | 428 | 528 | 755

Problem rozwiązany:
  1. <?php
  2. $json = file_get_contents('data.json');
  3.  
  4. $jsonDecoded = json_decode($json, true);
  5. foreach ($jsonDecoded['Data 2'] as $dateKey => $data) {
  6. $values = implode(',', $data);
  7. $statement = "INSERT INTO test2 (Date, 1, 2, 3) VALUES ('{$dateKey}'," . $values . ");";
  8. echo $statement . PHP_EOL;
  9. }
  10. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.