rfitz
#1
Does anyone know how to post the json from a sql select. It’s only posting my first record. I want to select addresses from a db and route them
Here is my code and print_r ($payload); Does show all records. but when I lookup my job_id I only get the first record back.
$tsql = "SELECT * , cs.callahead as callahead
FROM invoice i
INNER JOIN customer cs ON cs.cust_no = i.cust_no
INNER JOIN service svid on svid.invoice_no = i.invoice_no
INNER JOIN program p ON p.prog_id = svid.prog_id
WHERE i.emp_id= '$username'
and svid.servstatus = '$'
and p.status > '7'
and p.season = $dateyear";
$stmt = sqlsrv_query( $conn, $tsql);
/**
* Requires libcurl
*/
$query = array(
"key" => "xxx"
);
$curl = curl_init();
while( $row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
$custno = $row['cust_no'];
$latitude = $row['latitude'];
$long= $row['longitude'];
$lat = doubleval($latitude);
$lon = doubleval($long);
$payload = array(
"vehicles" => array(
array(
"vehicle_id" => "000",
"start_address" => array(
"location_id" => "Office",
"lon" => $lon,
"lat" => $lat
),
),
),
"services" => array(
array(
"id" => "ss1",
"name" => "visit-Joe",
"address" => array(
"location_id" => "$custno",
"lon" => $lon,
"lat" => $lat
),
"time_windows" => array(
array(
"earliest" => 1554805329,
"latest" => 1554806329
)
)
),
),
"configuration" => array(
"routing" => array(
"calc_points" => true,
"snap_preventions" => array(
"motorway",
"trunk",
"tunnel",
"bridge",
"ferry"
)
)
)
);
print_r ($payload);
//echo $payload;
}
curl_setopt_array($curl, [
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_URL => "https://graphhopper.com/api/1/vrp/optimize?" . http_build_query($query),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$error = curl_error($curl);
$response_id = json_decode($response);
if(!empty($response_id)) {
// echo $response_id ->job_id;
$key = $response_id ->job_id;
} else {
echo "Data not fetched.";
}
rfitz
#2
My payload output, you can see it’s pulling multiple addresses lat and longs from my db
Array
(
[vehicles] => Array
(
[0] => Array
(
[vehicle_id] => 000
[start_address] => Array
(
[location_id] => Office
[lon] => -76.43676
[lat] => 39.53483
)
)
)
[services] => Array
(
[0] => Array
(
[id] => ss1
[name] => visit-Joe
[address] => Array
(
[location_id] => 34705
[lon] => -76.43676
[lat] => 39.53483
)
[time_windows] => Array
(
[0] => Array
(
[earliest] => 1554805329
[latest] => 1554806329
)
)
)
)
[configuration] => Array
(
[routing] => Array
(
[calc_points] => 1
[snap_preventions] => Array
(
[0] => motorway
[1] => trunk
[2] => tunnel
[3] => bridge
[4] => ferry
)
)
)
)
Array
(
[vehicles] => Array
(
[0] => Array
(
[vehicle_id] => 000
[start_address] => Array
(
[location_id] => Office
[lon] => -76.34532
[lat] => 39.54322
)
)
)
[services] => Array
(
[0] => Array
(
[id] => ss1
[name] => visit-Joe
[address] => Array
(
[location_id] => 35501
[lon] => -76.34532
[lat] => 39.54322
)
[time_windows] => Array
(
[0] => Array
(
[earliest] => 1554805329
[latest] => 1554806329
)
)
)
)
[configuration] => Array
(
[routing] => Array
(
[calc_points] => 1
[snap_preventions] => Array
(
[0] => motorway
[1] => trunk
[2] => tunnel
[3] => bridge
[4] => ferry
)
)
)
)
Array
(
[vehicles] => Array
(
[0] => Array
(
[vehicle_id] => 000
[start_address] => Array
(
[location_id] => Office
[lon] => -76.35312
[lat] => 39.55275
)
)
)
[services] => Array
(
[0] => Array
(
[id] => ss1
[name] => visit-Joe
[address] => Array
(
[location_id] => 45278
[lon] => -76.35312
[lat] => 39.55275
)
[time_windows] => Array
(
[0] => Array
(
[earliest] => 1554805329
[latest] => 1554806329
)
)
)
)
[configuration] => Array
(
[routing] => Array
(
[calc_points] => 1
[snap_preventions] => Array
(
[0] => motorway
[1] => trunk
[2] => tunnel
[3] => bridge
[4] => ferry
)
)
)
)
Array
(
[vehicles] => Array
(
[0] => Array
(
[vehicle_id] => 000
[start_address] => Array
(
[location_id] => Office
[lon] => -76.33338
[lat] => 39.55671
)
)
)
[services] => Array
(
[0] => Array
(
[id] => ss1
[name] => visit-Joe
[address] => Array
(
[location_id] => 45081
[lon] => -76.33338
[lat] => 39.55671
)
[time_windows] => Array
(
[0] => Array
(
[earliest] => 1554805329
[latest] => 1554806329
)
)
)
)
[configuration] => Array
(
[routing] => Array
(
[calc_points] => 1
[snap_preventions] => Array
(
[0] => motorway
[1] => trunk
[2] => tunnel
[3] => bridge
[4] => ferry
)
)
)
)
Array
(
[vehicles] => Array
(
[0] => Array
(
[vehicle_id] => 000
[start_address] => Array
(
[location_id] => Office
[lon] => -76.36727
[lat] => 39.53962
)
)
)
[services] => Array
(
[0] => Array
(
[id] => ss1
[name] => visit-Joe
[address] => Array
(
[location_id] => 37765
[lon] => -76.36727
[lat] => 39.53962
)
[time_windows] => Array
(
[0] => Array
(
[earliest] => 1554805329
[latest] => 1554806329
)
)
)
)
[configuration] => Array
(
[routing] => Array
(
[calc_points] => 1
[snap_preventions] => Array
(
[0] => motorway
[1] => trunk
[2] => tunnel
[3] => bridge
[4] => ferry
)
)
)