0

I have a json object that looks like this:

"{"image_intro":"images\/leden\/vannoord.png","float_intro":"","image_intro_alt":"","image_intro_caption":"","image_fulltext":"","float_fulltext":"","image_fulltext_alt":"","image_fulltext_caption":""}"

I am looping items that each have an object like this, however I want to sent the image url to a javascript file and can't use it like this.

So I use the following code to get a readable url:

   $bedrijfimage = $bedrijven['images'];
   $bedrijfimg = json_decode($bedrijfimage);

   if($bedrijfimg->image_intro != ''){
     $bedrijvenimage = '../cms/'.$bedrijfimg->image_intro;
   }else{
     $bedrijvenimage = '../images/logo_ovn.png';
   }

This works fine, except that I want to add the result into my array and I can't seem to merge the two, or the result is loaded in a seperate array after my main array, or it created a seperate array for each image.

This is my current code:

$bedrijven            = "
SELECT
  cnt.id, cnt.title, cnt.introtext, cnt.ordering, cnt.images, cnt.alias, cnt.requested, cnt.lat, cnt.lng, cnt.state, f.item_id,
  MAX(CASE WHEN f.field_id = 3 THEN f.value END) AS plaats,
  MAX(CASE WHEN f.field_id = 2 THEN f.value END) AS postcode,
  MAX(CASE WHEN f.field_id = 1 THEN f.value END) AS straat
FROM snm_fields_values f
JOIN snm_content cnt
ON cnt.id = f.item_id
WHERE cnt.state = 1
GROUP BY f.item_id
ORDER BY f.item_id, plaats, straat, postcode";
$bedrijvencon       = $conn->query($bedrijven);
$bedrijvenarray = [];

while($bedrijven    = $bedrijvencon->fetch_assoc()){
  $straatnaam = '';
  $plaatsnaam = '';
  // Stop $bedrijven in een array
   array_push($bedrijvenarray, $bedrijven);
   // Vervang de straatnaam spaties met plusjes voor de filegetcontents url
   $straatnaam .= str_replace(' ', '+', $bedrijven['straat']);
   $postcode .= str_replace(' ', '+', $bedrijven['postcode']);
   $plaatsnaam .= $bedrijven['plaats'];

    // Kijk of er al een plaatsnaam en straatnaam in de database bestaan bij het artikel
    // $existcheck            = "
    // DESC snm_content";
    // $existcheckcon       = $conn->query($existcheck);
    // $existcheck       = $existcheckcon->fetch_assoc();

    if(($bedrijven['requested'] == 0) && ($bedrijven['state'] == 1)){
      $getlatlong = file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=".$bedrijven['plaats'].",".$straatnaam."&key=apikey");
      $latlongarray = json_decode($getlatlong);
      $lat = '';
      $lng = '';

      // Leeg de latlong na elke loop
      foreach ($latlongarray->results as $key => $latlong){
       //  $latlonglijst .= $latlong->geometry->location->lat.' ';
       //  $latlonglijst .= $latlong->geometry->location->lng.'<br>';
       $lat .= $latlong->geometry->location->lat;
       $lng .= $latlong->geometry->location->lng;
       // array_push($bedrijvenarray, $lat, $lng);
       //$new_array = array('lat'=>''.$lat.'', 'lng'=>''.$lng.'');

      }
      // Voeg lat en lng toe aan de $bedrijven array
      // $bedrijven['lat'] = $new_array['lat'];
      // $bedrijven['lng'] = $new_array['lng'];
      // $bedrijven['intro_image'] = $image_array['intro_image'];
      // $bedrijvenarray1[] = $bedrijven;


      $updatetable            = "
      UPDATE snm_content
      SET requested = 1, lat = '".$lat."', lng = '".$lng."'
      WHERE id = '".$bedrijven['id']."'";
      $updatetablecon       = $conn->query($updatetable);

      // echo $updatetable;

    }else if($bedrijven['requested'] == 1){

    }




   $bedrijfimage = $bedrijven['images'];
   $bedrijfimg = json_decode($bedrijfimage);

   if($bedrijfimg->image_intro != ''){
     $bedrijvenimage = '../cms/'.$bedrijfimg->image_intro;
   }else{
     $bedrijvenimage = '../images/logo_ovn.png';
   }
}
$jsonobject = json_encode($bedrijvenarray);

Which returns the following if I loop it:

9
:
alias
:
"van-noord-bv"
id
:
"108"
images
:
"{"image_intro":"images\/leden\/vannoord.png","float_intro":"","image_intro_alt":"","image_intro_caption":"","image_fulltext":"","float_fulltext":"","image_fulltext_alt":"","image_fulltext_caption":""}"
introtext
:
""
item_id
:
"108"
lat
:
"51.8204687"
lng
:
"4.2526415"
ordering
:
"4"
plaats
:
"Zuidland"
postcode
:
"3214 VB"
requested
:
"1"
state
:
"1"
straat
:
"Kerkweg 9"
title
:
"Van Noord bv"
__proto__
:
Object

I would like to change that output and add a key and value like this:

image: ../cms/images/leden/vannoord.png

How can I achieve that?

1 Answer 1

1

Move your array_push($bedrijvenarray, $bedrijven); to end of loop body:

    $bedrijfimage = $bedrijven['images'];
    $bedrijfimg = json_decode($bedrijfimage);

    if($bedrijfimg->image_intro != ''){
        $bedrijvenimage = '../cms/'.$bedrijfimg->image_intro;
    }else{
        $bedrijvenimage = '../images/logo_ovn.png';
    }

    $bedrijven["image"] = $bedrijvenimage;

    array_push($bedrijvenarray, $bedrijven);
}
$jsonobject = json_encode($bedrijvenarray);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.