Files
d1041231060-WebGIS-PovertyMap/uas/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

82 lines
3.4 KiB
PHP

<?php
include 'koneksi.php';
$type = $_POST['type'] ?? '';
$id = (int)($_POST['id'] ?? 0);
if ($id <= 0) { echo json_encode(['status' => 'error']); exit; }
function esc($conn, $v) { return mysqli_real_escape_string($conn, trim($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';
$q = "UPDATE spbu SET nama='$nama', nomor='$nomor', status_24jam='$status' 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'] ?? '');
$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='" . mysqli_real_escape_string($conn, $fname) . "'";
}
}
}
$q = "UPDATE kemiskinan SET nama_kk='$nama_kk', jumlah_kk=$jumlah_kk, alamat='$alamat',
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'] ?? '');
$q = "UPDATE masjid SET nama_masjid='$nama', pic='$pic', alamat='$alamat' 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';
$q = "UPDATE jalan SET nama_jalan='$nama', status_jalan='$status' 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';
$q = "UPDATE persil SET nomor_persil='$nomor', status_milik='$status' WHERE id=$id";
break;
case 'wilayah':
$nama = esc($conn, $_POST['nama'] ?? '');
$tipe = in_array($_POST['tipe'] ?? '', ['RT','RW','Kelurahan','Kecamatan'])
? $_POST['tipe'] : 'RT';
$q = "UPDATE wilayah SET nama='$nama', tipe='$tipe' 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)]);
}