Files
d1041231060-WebGIS-PovertyMap/update_data.php
T
Athallah Ghathfan Aqila 6215b4367a Initial commit — WebGIS UAS GeoMiskin
Sistem WebGIS analisis sebaran penduduk miskin dan jangkauan rumah ibadah.
Fitur: peta interaktif Leaflet.js, CRUD rumah ibadah & penduduk miskin,
auto-kategorisasi haversine, heatmap, export PDF/CSV, dashboard analitik,
manajemen pengguna (superadmin/admin), login sistem.

Teknologi: PHP, MySQL, Leaflet.js, OpenStreetMap, Nominatim Geocoding, mPDF.

Catatan: jalankan `composer install` di folder uas/ untuk install dependencies.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 13:31:33 +07:00

92 lines
4.3 KiB
PHP

<?php
header('Content-Type: application/json');
include 'koneksi.php';
$type = $_POST['type'] ?? '';
$id = (int)($_POST['id'] ?? 0);
if ($id <= 0) { echo json_encode(['status' => 'error', 'message' => 'ID tidak valid']); exit; }
function esc($conn, $v) { return mysqli_real_escape_string($conn, trim((string)$v)); }
switch ($type) {
case 'spbu':
$nama = esc($conn, $_POST['nama'] ?? '');
$nomor = esc($conn, $_POST['nomor'] ?? '');
$status = in_array($_POST['status'] ?? '', ['Ya','Tidak']) ? $_POST['status'] : 'Tidak';
$lat = (float)($_POST['lat'] ?? 0);
$lng = (float)($_POST['lng'] ?? 0);
$q = "UPDATE spbu SET nama='$nama', nomor='$nomor', status_24jam='$status', lat=$lat, lng=$lng WHERE id=$id";
break;
case 'kemiskinan':
$nama_kk = esc($conn, $_POST['nama_kk'] ?? '');
$jumlah_kk = max(1, (int)($_POST['jumlah_kk'] ?? 1));
$alamat = esc($conn, $_POST['alamat'] ?? '');
$lat = (float)($_POST['lat'] ?? 0);
$lng = (float)($_POST['lng'] ?? 0);
$pkh = (isset($_POST['pkh']) && $_POST['pkh'] == '1') ? 1 : 0;
$bpnt = (isset($_POST['bpnt']) && $_POST['bpnt'] == '1') ? 1 : 0;
$blt = (isset($_POST['blt']) && $_POST['blt'] == '1') ? 1 : 0;
$fotoSet = '';
if (!empty($_FILES['foto']['name']) && $_FILES['foto']['error'] === UPLOAD_ERR_OK) {
$ext = strtolower(pathinfo($_FILES['foto']['name'], PATHINFO_EXTENSION));
$allowed = ['jpg','jpeg','png','webp'];
if (in_array($ext, $allowed) && $_FILES['foto']['size'] <= 5*1024*1024) {
$dir = __DIR__ . '/uploads/kemiskinan/';
if (!is_dir($dir)) mkdir($dir, 0755, true);
$fname = 'kk_' . $id . '_' . time() . '.' . $ext;
if (move_uploaded_file($_FILES['foto']['tmp_name'], $dir.$fname)) {
$fotoSet = ", foto='" . esc($conn, $fname) . "'";
}
}
}
$q = "UPDATE kemiskinan SET nama_kk='$nama_kk', jumlah_kk=$jumlah_kk, alamat='$alamat',
lat=$lat, lng=$lng, pkh=$pkh, bpnt=$bpnt, blt=$blt{$fotoSet} WHERE id=$id";
break;
case 'masjid':
$nama = esc($conn, $_POST['nama_masjid'] ?? '');
$pic = esc($conn, $_POST['pic'] ?? '');
$alamat = esc($conn, $_POST['alamat'] ?? '');
$radius = max(50, min(5000, (int)($_POST['radius_m'] ?? 300)));
$lat = (float)($_POST['lat'] ?? 0);
$lng = (float)($_POST['lng'] ?? 0);
$q = "UPDATE masjid SET nama_masjid='$nama', pic='$pic', alamat='$alamat',
radius_m=$radius, lat=$lat, lng=$lng WHERE id=$id";
break;
case 'jalan':
$nama = esc($conn, $_POST['nama_jalan'] ?? '');
$status = in_array($_POST['status_jalan']??'', ['Nasional','Provinsi','Kabupaten']) ? $_POST['status_jalan'] : 'Kabupaten';
$panjang = (float)($_POST['panjang'] ?? 0);
$geojson = esc($conn, $_POST['geojson'] ?? '');
$q = "UPDATE jalan SET nama_jalan='$nama', status_jalan='$status', panjang_m=$panjang" .
($geojson ? ", geojson='$geojson'" : '') . " WHERE id=$id";
break;
case 'persil':
$nomor = esc($conn, $_POST['nomor_persil'] ?? '');
$status = in_array($_POST['status_milik']??'', ['SHM','HGB','HGU','HP']) ? $_POST['status_milik'] : 'SHM';
$luas = (float)($_POST['luas'] ?? 0);
$geojson = esc($conn, $_POST['geojson'] ?? '');
$q = "UPDATE persil SET nomor_persil='$nomor', status_milik='$status', luas_m2=$luas" .
($geojson ? ", geojson='$geojson'" : '') . " WHERE id=$id";
break;
case 'wilayah':
$nama = esc($conn, $_POST['nama'] ?? '');
$tipe = in_array($_POST['tipe']??'', ['RT','RW','Kelurahan','Kecamatan']) ? $_POST['tipe'] : 'RT';
$geojson = esc($conn, $_POST['geojson'] ?? '');
$q = "UPDATE wilayah SET nama='$nama', tipe='$tipe'" .
($geojson ? ", geojson='$geojson'" : '') . " WHERE id=$id";
break;
default:
echo json_encode(['status' => 'error', 'message' => 'Tipe tidak dikenal.']); exit;
}
if (mysqli_query($conn, $q)) echo json_encode(['status' => 'success']);
else echo json_encode(['status' => 'error', 'message' => mysqli_error($conn)]);