Ik heb als test de volgende code geprobeerd.:


$mysqli1 = new mysqli('localhost','root','xxxxxx','xxxxxx');
                    $myArray1 = array();


                    if ($result1 = $mysqli1->query("SELECT RMFR,RMFRMin,RMFRMax FROM specsv1 where RNaam = '$aCountries[$i]'")) {
                    $tempArray1 = array();


                    while($row1 = $result1->fetch_object()) {
                        $tempArray1 = $row1;
                        if(!$myArray1) $tempArray1; //alleen bij 1e record
                        array_push($myArray1, $tempArray1);
                        }

                       

                        print json_encode($myArray1)."</BR>";
                        $fp1 = fopen('resultstestMFRSPEC.json', 'w');
                        fwrite($fp1, json_encode($myArray1,JSON_NUMERIC_CHECK));
                        fclose($fp1);
                    }

                    $result1->close();
                    $mysqli1->close();


de regel die hij wegschrijft is bv.: [{"RMFR":"16.00","RMFRMin":"14.00","RMFRMax":"18.00"}]
deze word ook mooi in het scherm getoond en op de juiste wijze in de file.
Nu vroeg ik mij af of het mogelijk zou zijn op het geen dat hij in het scherm toont iets mooier te maken met bv. str_replace, dus had ik in bovenstaande code het volgende erbij geplaatst.:

 //tekst mooier maken
 $newline = str_replace('[{"', '', $myArray1);
 print json_encode($newline )."</BR>";


echter hij blijft mij hetzelfde tonen er gebeurd niets met die lijn terwijl ik zou verwachten dat hij dan dit zou moeten tonen.: RMFR":"16.00","RMFRMin":"14.00","RMFRMax":"18.00"}]

Wat zie ik over het hoofd?
Want wat ik eigenlijk wil zien is dit RMFR=16.00 RMFRMin=14.00 RMFRMax=18.00
Huh? Ga je nu zelf json uit elkaar rafelen?!?

Kijk eens naar [php]json_decode[/php]. Dat is precies wat je wilt. Die maakt er een array van die je dan kan uitlezen.

Dan heb je al die frutsels van dubbele punten, komma's en haakjes niet meer.

Okee, met het tijdelijk gebruik van [php]print_r[/php] over json_decode heen moet je tijdens het ontwikkelen een beeld krijgen van de array.

Als ik het volgende probeer , zie ik niks.:

      $json = '[{"RMFR":"16.00","RMFRMin":"14.00","RMFRMax":"18.00"}]';

$obj = json_decode($json);
print $obj->{'RMFR'}."</BR>";
print $obj->{'RMFRMin'}."</BR>";
print $obj->{'RMFRMax'}."</BR>";


echter laat ik dit weg [ in het begin en op het einde dit ], dan zie ik wel mooi de waarden.
hoe moet ik dat dan oplossen?
$obj = json_decode($json,true);
print_r($obj);

Wat is de output dan?
Als ik dat probeer zie ik dit.: Array ( [0] => Array ( [RMFR] => 16.00 [RMFRMin] => 14.00 [RMFRMax] => 18.00 ) )
Schijnbaar ben ik te stom hiervoor , meende het op te kunnen lossen met replace optie's.
Ik zoek anders wel ff verder via google, kan mij niet zo moeilijk lijken maar....
Je hebt een array. Probeer die dan eens uit te lezen of anders in die materie te verdiepen.

'Replace' is nooit een oplossing als je bestaande format wilt uitlezen. Wat je kan formatteren aan data kan je ook weer ontformatteren.
Nou ben al de halve middag bezig met mijn array die zo eruit gehaald word.: Array ( [0] => Array ( [RMFR] => 16.00 [RMFRMin] => 14.00 [RMFRMax] => 18.00 ) )

Echter krijg ik wel complete array eruit gehaald maar meer ook niet.
Niet wat ik wil weer zo een mooie indeling van bv RMFR=16.00 RMFRMin=14.00 RMFRMax=18.00
Je krijgt alle relevante informatie in een net format aangeleverd.

Ik weet niet wat je nog meer verwacht?

De rest (afhandeling hiervan) zul je toch echt zelf voor elkaar moeten breien.
Ben je bekend met array's?

Reageren