Mijn idee om dit tegen te gaan was één keer alle coordinaten op te halen en deze op te slaan in de database en een kolom toe te voegen genaamd `requested` die standaard 0 is. Hierna kan ik checken of requested gelijk is aan 0 en alleen dan een request uitvoeren naar google, waarna de 0 in een 1 verandert.
Ik ben al een eind maar om de een of andere reden worden in mijn database overal dezelfde coordinaten toegevoegd. Dus iets binnen mijn loop gaat niet goed, wat kan dat zijn?
Hier een korte versie van waar ik die coordinaten loop:
<?php
if($existcheck['requested'] == 0){
$getlatlong = file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=".$bedrijven['plaats'].",".$straatnaam."&key=mijnapikey");
$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."'";
$updatetablecon = $conn->query($updatetable);
// echo $updatetable;
}else if($existcheck['requested'] == 1){
}
?>
Hierna ziet mijn database er zo uit:

Ook is mijn website erg traag, zelfs wanneer alle requested velden op 1 staan en dat ligt zeker weten aan deze code want wanneer ik het hele stuk weghaal is hij weer snel.
Hieronder de complete code mocht dat iets makkelijker lezen:
<?php
$bedrijven = "
SELECT
cnt.id, cnt.title, cnt.introtext, cnt.ordering, cnt.images, cnt.alias, cnt.state, f.item_id,
MAX(CASE WHEN f.field_id = 3 THEN f.value END) AS plaats,
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";
$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']);
$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($existcheck['requested'] == 0){
$getlatlong = file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=".$bedrijven['plaats'].",".$straatnaam."&key=mijnapikey");
$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."'";
$updatetablecon = $conn->query($updatetable);
// echo $updatetable;
}else if($existcheck['requested'] == 1){
}
$bedrijfimage = $bedrijven['images'];
$bedrijfimg = json_decode($bedrijfimage);
if($bedrijfimg->image_intro != ''){
$bedrijvenimage = '../cms/'.$bedrijfimg->image_intro;
}else{
$bedrijvenimage = '../images/logo_ovn.png';
}
$image_array = array('intro_image'=>''.$bedrijvenimage.'');
}
$jsonobject = json_encode($bedrijvenarray1);
?>
Een hoop is niet relevant omdat ik het eerst dus op die manier deed dat hij binnen no time aan zijn limiet kwam (altijd voor alle items een request uitvoeren en dit direct in een array stoppen).