Vraag over maken van Json file.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
if ($result = $mysqli->query("SELECT CONCAT(Datum , ' ', Tijd) as Datum, MVRml10ml FROM metingen where Product = '$aProducts[$i]' order by Datum ASC limit 300")) {
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
array_push($myArray, $tempArray);
}
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($myArray,JSON_NUMERIC_CHECK));
fclose($fp);
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
array_push($myArray, $tempArray);
}
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($myArray,JSON_NUMERIC_CHECK));
fclose($fp);
De aangemaakte Json file ziet er dan bv zo eruit.:
Code (php)
1
[{"Datum":"1-1-2018 00:15","MVRml10ml":21.483},{"Datum":"1-1-2018 00:15","MVRml10ml":21.483},{"Datum":"1-1-2018 01:20","MVRml10ml":21.476}]
Deze chart wat ik gebruik is van amcharts.
Omdat ik verschillende data soorten heb en dus een dropdown met stukken heb die je in de grafiek kunt tonen dus bv kleur, soort enz.
Nu kun je dit in een grafiek doen maar dan je met functies in die code van hun werken en dat gaat ook alleen zij geven in de eerste data reeks een valuefield mee, dus hun voorbeeld zo.:
Code (php)
1
[{"Datum":"15-11-2017","MVRml10ml":14.2,"MVR":24,"valueField":"MVR"},{"Datum":"16-11-2017","MVRml10ml":13.75,"MVR":19},{"Datum":"16-11-2017","MVRml10ml":14.35,"MVR":22},{"Datum":"16-11-2017","MVRml10ml":13.83,"MVR":14},{"Datum":"16-11-2017","MVRml10ml":13.99,"MVR":19}]
Dus hier zie je in het eerste stukje data dit voorkomen.:
Hoe kan ik dit ook maken zodat in de eerste data die valuefield invoeg en bij de rest niet zoals in hun voorbeeld?
Hopelijk te begrijpen wat ik bedoel.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
if ($result = $mysqli->query("SELECT CONCAT(Datum , ' ', Tijd) as Datum, MVRml10ml FROM metingen where Product = '$aCountries[$i]' order by Datum ASC limit 300")) {
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
if(!$myArray), $tempArray["valueField"] = "MVRml10ml"; //alleen bij 1e record
array_push($myArray, $tempArray);
}
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($myArray,JSON_NUMERIC_CHECK));
fclose($fp);
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
if(!$myArray), $tempArray["valueField"] = "MVRml10ml"; //alleen bij 1e record
array_push($myArray, $tempArray);
}
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($myArray,JSON_NUMERIC_CHECK));
fclose($fp);
Dan toont hij niets en zodra ik die if regel weg haal werkt het wel weer.
Volgens mij had ik er geen komma in staan ...
Hoe die er tussen komt geen idee, heb hem weg gehaald, maar dan maakt hij ook geen Json file aan, gebeurd niets.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
if ($result = $mysqli->query("SELECT CONCAT(Datum , ' ', Tijd) as Datum, MVRml10ml FROM metingen where Product = '$aCountries[$i]' order by Datum ASC limit 300")) {
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
if(!$myArray) $tempArray->valueField = "MVR"; //alleen bij 1e record
array_push($myArray, $tempArray);
}
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($myArray,JSON_NUMERIC_CHECK));
fclose($fp);
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
if(!$myArray) $tempArray->valueField = "MVR"; //alleen bij 1e record
array_push($myArray, $tempArray);
}
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($myArray,JSON_NUMERIC_CHECK));
fclose($fp);
SUPER!!!! Thx.
Genereer je dit bestand telkens opnieuw, mogelijk zonder dat er inhoudelijk iets verandert? Lijkt me nogal inefficiënt.
nou het werk zeer effient en super.
In code heb je verschillende operaties, sommige zijn relatief duur, andere zijn relatief goedkoop. Het manipuleren van bestanden valt ongeveer in de duurdere/duurste categorie.
Is het bijvoorbeeld mogelijk om de JSON rechtstreeks aan te leveren? Verandert de data sterk over tijd? De gekozen oplossingsrichting hangt mede/sterk af van het gedrag van de data. En als deze sterk verandert over tijd, heeft het dan wel zin om hier elke keer opnieuw een bestand voor te bakken? Ook is er niets bekend over de frequentie van de aanroep van deze functionaliteit. Is dit een zoekfunctie, of meer een export?
En als het dan toch via een bestand moet dan loont het misschien de moeite om het archiveren toch wat slimmer te maken dan het bovenstaande, mits de aard van de data zich hiervoor leent... waar je verder ook niets over vertelt, dus dat is dan nogal lastig in te schatten.
Tenzij je niet verder wil gaan dan "het werkt, dus het maakt mij verder niet uit hoe inefficiënt het is".
De hele opzet is , hal van gekozen product met waarde uit de database en schrijf het naar die file en de grafiek haalt het daar weer uit.
Gewijzigd op 16/09/2018 12:48:53 door Thomas van den Heuvel