Files
D1041231091-WebGIS-All/02/ambil_data.php
T

70 lines
2.5 KiB
PHP

<?php
/**
* ambil_data.php
* Mengambil semua data SPBU, polyline, dan polygon dari database.
* Response dalam format JSON.
*/
header('Content-Type: application/json');
require_once 'koneksi.php';
$result = [
'status' => 'success',
'spbu' => [],
'polyline' => [],
'polygon' => [],
];
// ─── Ambil data SPBU ─────────────────────────────────────────────────────────
$query_spbu = "SELECT id, nama_spbu, status_ramai, buka_24_jam, status_operasional, nomor_hp, latitude, longitude FROM spbu ORDER BY id ASC";
$res = $koneksi->query($query_spbu);
if ($res) {
while ($row = $res->fetch_assoc()) {
// Cast tipe data numerik
$row['id'] = (int)$row['id'];
$row['latitude'] = (float)$row['latitude'];
$row['longitude'] = (float)$row['longitude'];
$result['spbu'][] = $row;
}
$res->free();
} else {
$result['status'] = 'partial_error';
$result['error_spbu'] = $koneksi->error;
}
// ─── Ambil data Polyline ──────────────────────────────────────────────────────
$query_poly = "SELECT id, nama_line, keterangan, warna, koordinat FROM polyline ORDER BY id ASC";
$res = $koneksi->query($query_poly);
if ($res) {
while ($row = $res->fetch_assoc()) {
$row['id'] = (int)$row['id'];
// Decode koordinat JSON → array, kembalikan sebagai array PHP (akan di-encode ulang ke JSON)
$row['koordinat'] = json_decode($row['koordinat'], true);
$result['polyline'][] = $row;
}
$res->free();
} else {
$result['status'] = 'partial_error';
$result['error_polyline'] = $koneksi->error;
}
// ─── Ambil data Polygon ───────────────────────────────────────────────────────
$query_pgon = "SELECT id, nama_polygon, keterangan, warna, koordinat FROM polygon ORDER BY id ASC";
$res = $koneksi->query($query_pgon);
if ($res) {
while ($row = $res->fetch_assoc()) {
$row['id'] = (int)$row['id'];
$row['koordinat'] = json_decode($row['koordinat'], true);
$result['polygon'][] = $row;
}
$res->free();
} else {
$result['status'] = 'partial_error';
$result['error_polygon'] = $koneksi->error;
}
$koneksi->close();
echo json_encode($result);