Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit JSON Format aus Array

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit JSON Format aus Array

    Ist bestimmt kein Riesenproblem - nur ich komm seit Tagen nicht weiter.
    Aus einer SQL-Abfrage möchte ich ein Array erstellen und dies in JSON umwandeln.
    Hier mein Code:
    PHP-Code:
    <?php

    error_reporting 
    (E_ALL E_STRICT);
    ini_set ('display_errors' 1);

    $db_link mysqli_connect ("localhost","root""")
    or die (
    "... keine Verbindung möglich. Benutzername oder Passwort sind falsch");

    mysqli_select_db($db_link"TSI")
    or die (
    "Die Datenbank existiert nicht.");

    $names = array();

    // Namen mit 5 höchsten Werten am letzten Datum ermitteln
    $abfrage "SELECT Datum, Name, Wert FROM Werte WHERE Datum = (SELECT max(Datum) FROM Werte) ORDER BY Wert DESC LIMIT 5";
    $ergebnis mysqli_query($db_link$abfrage);
    while(
    $row mysqli_fetch_object($ergebnis)) {
       
    $names[] = $row->Name;
    };

    $data = array();
    $data_all = array();

    for (
    $i 0$i <= 4$i++) {
        
    $rs mysqli_query($db_link"SELECT Datum, Name, Wert FROM Werte WHERE Name = '".$names[$i]."' ORDER BY Datum desc LIMIT 10");
        if ( 
    $rs && mysqli_num_rows($rs) ) {
            while( 
    $row mysqli_fetch_array($rsMYSQLI_ASSOC) ) {
                
    $data[$row['Datum']][$i] = $row['Wert'];

                }
        };
    };

    mysqli_close($db_link);
    echo 
    json_encode($data_all); 
    ?>
    Bislang bekomme ich folgende Array-Struktur raus:

    Array
    (
    [2014-04-29] => Array
    (
    [0] => 90.55
    [1] => 89.90
    [2] => 89.05
    [3] => 79.54
    [4] => 78.69
    )

    [2014-04-22] => Array
    (
    [0] => 89.96
    [1] => 86.33
    [2] => 92.16
    [3] => 78.65
    [4] => 87.20
    )
    usw.

    Benötigen tue ich aber:

    Array
    (
    [Datum: 2014-04-29] => Array
    (
    [Wert_0] => 90.55
    [Wert_1] => 89.90
    [Wert_2] => 89.05
    [Wert_3] => 79.54
    [Wert_4] => 78.69
    )

    [Datum: 2014-04-22] => Array
    (
    [Wert_0] => 89.96
    [Wert_1] => 86.33
    [Wert_2] => 92.16
    [Wert_3] => 78.65
    [Wert_4] => 87.20
    )
    ...

    Hat jemand eine Idee?

  • #2
    Zitat von elbnacht Beitrag anzeigen
    Ist bestimmt kein Riesenproblem - nur ich komm seit Tagen nicht weiter.
    Aus einer SQL-Abfrage möchte ich ein Array erstellen und dies in JSON umwandeln.
    Hat jemand eine Idee?
    Ja.

    Laß das gleich die DB machen. PostgreSQL kann das seit 3 Versionen, also seit ca. 3 Jahren.
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      Zitat von elbnacht Beitrag anzeigen
      $data[$row['Datum']][$i] = $row['Wert'];
      Mir ist nicht so ganz klar wozu du die längeren Keys brauchst, aber häng doch in der Zeile einfach noch einen String vor den Key (also nicht [$i] sondern ['Wert_'.$i]) ...

      Zitat von akretschmer Beitrag anzeigen
      Laß das gleich die DB machen. PostgreSQL kann das seit 3 Versionen, also seit ca. 3 Jahren.
      Schön für dich, der OP nutzt aber MySQL. Thema verfehlt, setzen, 6.

      Kommentar


      • #4
        Danke. Ja, ist leider mysqli-DB.

        Das mit dem String ist ok. Wie bekomme ich noch den Key für das Datum hin? Dies ist wesentlich für die spätere Verwendung.

        Kommentar


        • #5
          Zitat von elbnacht Beitrag anzeigen
          Wie bekomme ich noch den Key für das Datum hin?
          Auf die gleiche Art wie den String »Wert_«, wo liegt das Problem?

          Kommentar

          Lädt...
          X