Thorsten: Spielzeug ...

Beitrag lesen

Hi,

Bezüglich des Jahrs war nichts definiert. Dass das Jahr aber im JSON auftaucht ist eigentlich ein Merkmal dafür, dass es variabel ist.

Ist es auch. Das regelt aber der Scriptaufrufen bereits über einen Parameter, der in die WHERE-Bedingung der SQL-Query einfließt.

Möglicherweise. Deiner ersten Darstellungen nach begannen die Monate mit 1 (=Januar) zu zählen. Dann musst Du natürlich anpassen:

Würde ich. Aber eine Monate begannen immer mit 0=Januar (oder habe ich mich irgendwo verschrieben?), in miener ersten Darstellung gabs lediglich mal nur 11 Werte. Das lag aber daran, dass er 2015er Werte waren und der Dezemberwert nicht vorliegt.

Danke jedenfalls für Deine Hilfe, jetzt läuft alles ganz prima.

Thorsten

<?php

# Konfiguration
$mOffset=1 # 1, wenn Monate in der DB mit 1 = Januar gezählt werden
           # 0, wenn Monate in der DB mit 0 = Januar gezählt werden
# Simulation Datenbank:
$arr[1]=130;
#$arr[2]=0;
$arr[3]=50;
#$arr[4]=0;
$arr[5]=160;
$arr[6]=150;
$arr[7]=130;
$arr[8]=120;
#$arr[9]=0;
$arr[10]=40;
$arr[11]=160;
$arr[12]=350;

$jahr = 2015;

for ($Monat=0; $Monat < 12; $Monat++) { 
# < 12 statt <= 11 sorgt für mehr Klarheit und spart einen Vergleich ...
    if (empty($arr[$Monat + $mOffset])) {
            $innenarray[$Monat] = 0;
    } else {
            $innenarray[$Monat] = $arr[$Monat + $mOffset];
    }
}
$data = array($jahr => $innenarray);
echo json_encode($data);

Jörg Reinholz