Mensen,
Ik heb een functie gemaakt die voor mij het dichstbijzijnde station ophaalt.
De functie krijgt een postcode mee en binnen die functie wordt gecheckt tegen een query van stations door middel van de Google API welk station het dichtste bij is.
De query is correct. Als ik deze uitvoer binnen MySQL krijg ik netjes een lijstje met de ID's en postcodes van de 25 stations die in de tabel staan.
Strip ik de code dermate zodat ik alleen de afstand terugkrijg van terugkrijg tussen $begin en $stationPostcode werkt de functie keurig.
Maar ik wil dus dat de functie alle 25 stations checkt in de foreach en telkens het ID van het dichtsbijzijnde station opslaat.
De functie geeft echter altijd 1 terug. 1 is uiteraard het eerste station in mijn tabel. Ik zit nu al uren te turen en te proberen maar volgens mij moet deze functie gewoon correct zijn.
Wie zou mij kunnen helpen? Overigens weet ik bijna 100% zeker dat dit heeft gewerkt, al had ik eerder een array staan om doorheen te lopen. Maar als ik nu weer een array maak in plaats van de query werkt het ook niet meer.. Ik zie het gewoon niet meer
Ik heb een functie gemaakt die voor mij het dichstbijzijnde station ophaalt.
De functie krijgt een postcode mee en binnen die functie wordt gecheckt tegen een query van stations door middel van de Google API welk station het dichtste bij is.
De query is correct. Als ik deze uitvoer binnen MySQL krijg ik netjes een lijstje met de ID's en postcodes van de 25 stations die in de tabel staan.
Strip ik de code dermate zodat ik alleen de afstand terugkrijg van terugkrijg tussen $begin en $stationPostcode werkt de functie keurig.
Maar ik wil dus dat de functie alle 25 stations checkt in de foreach en telkens het ID van het dichtsbijzijnde station opslaat.
De functie geeft echter altijd 1 terug. 1 is uiteraard het eerste station in mijn tabel. Ik zit nu al uren te turen en te proberen maar volgens mij moet deze functie gewoon correct zijn.
Wie zou mij kunnen helpen? Overigens weet ik bijna 100% zeker dat dit heeft gewerkt, al had ik eerder een array staan om doorheen te lopen. Maar als ik nu weer een array maak in plaats van de query werkt het ook niet meer.. Ik zie het gewoon niet meer
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| function dichtsbijzijndeStation($begin) { $query = new Database(); $getStations = $query->getAll("SELECT DISTINCT station_id, postcode FROM adres JOIN station ON adres.adres_id = station.adres_id"); $minAfstand = 1000; $closeStation = ""; foreach ($getStations as $station) { $stationPostcode = $station['postcode']; $stationid = $station['station_id']; error_reporting(E_ALL); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" . $begin . "&destinations=" . $stationPostcode . "&mode=transit&key=<API KEY>", CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => array( "cache-control: no-cache" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); $response = json_decode($response, true); $afstand = $response['rows']['0']['elements']['0']['distance']['text']; $afstandZonderKM = preg_replace('/ km/', '', $afstand); if ($afstandZonderKM < $minAfstand) { $minAfstand = $afstandZonderKM; $closeStation = $stationid; } } return $closeStation; } |
[ Voor 4% gewijzigd door St@m op 19-05-2018 13:25 ]
vuurwerk - vlees eten - tuinkachel - bbq - alcohol - voetbalwedstrijden - buitenfestivals - houtkachels