Moin!
Ergebnismenge dieser Abfrage ist so etwas in dieser Art:
Jahr Monat Anzahl 2015 1 1 2015 2 2 2015 3 2 2015 4 1 2015 5 9 2015 7 3 2015 10 4 2015 11 3
Meine Frage: Wie verpacke ich dieses Ergebnis mit php so, dass folgendes Ergebnis an meine JS Anwendung gesendet wird:
{
"2015": [1,2,2,1,9,0,3,0,0,4,3]
}
Immer schön dumm stellen. DAS ist die Kunst des Programmierens!
$Jahr_min = 9999999;
$Jahr_max = -9999999;
# Deine Abfrage
# Dann für jede Zeile der Rückgabe ($ret)
# Frühestes Jahr nach einer uralten Methode ermitteln:
if ( $ret['Jahr'] < $Jahr_min ) { $Jahr_min = $ret['Jahr']; }
# Spätestes Jahr nach der selben uralten Methode ermitteln:
if ( $ret['Jahr'] > $Jahr_man ) { $Jahr_man = $ret['Jahr']; }
# im gewünschten JSON beginnen die Monate offenbar bei 0:
$ar[$ret['Jahr']][$ret['Monat'] - 1]=$ret['Anzahl'];
#dann:
# für jedes Jahr
for ( $Jahr=$Jahr_min; $Jahr<=$Jahr_max;$Jahr++ ) {
#für jeden Monat:
for ($Monat=1; $Monat <= 12; $Monat++) {
if ( empty( $ar[$Jahr][$Monat])) { $ar[$Jahr][$Monat] = 0; }
}
}
# und jetzt das json "bauen";
$json=json_encode($ar, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT);
Das ist ein Plan, kein fertiges Programm.
Jörg Reinholz