Files
D1041231077-webgis/03/simpan_rumah.php
T
2026-06-10 00:49:56 +07:00

79 lines
3.1 KiB
PHP

<?php
/**
* simpan_rumah.php v3 — Simpan / Update Data Rumah Miskin
*
* POST params:
* id - ID rumah (opsional, jika update)
* lat, lng - Koordinat
* address - Alamat lengkap
* rt, rw - RT dan RW
* kelurahan - Nama kelurahan
* status_miskin - sangat_miskin / miskin / tidak_miskin
* jumlah_anggota - Jumlah anggota keluarga
* anggota - JSON array data tiap anggota
* aid_status - helped / not_helped / outside
* has_data - 0 atau 1
*/
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['success' => false, 'message' => 'Hanya POST']);
exit;
}
$id = intval($_POST['id'] ?? 0);
$lat = floatval($_POST['lat'] ?? 0);
$lng = floatval($_POST['lng'] ?? 0);
$address = $conn->real_escape_string(strip_tags($_POST['address'] ?? ''));
$rt = $conn->real_escape_string(strip_tags($_POST['rt'] ?? ''));
$rw = $conn->real_escape_string(strip_tags($_POST['rw'] ?? ''));
$kelurahan = $conn->real_escape_string(strip_tags($_POST['kelurahan'] ?? ''));
$statusMiskin = $conn->real_escape_string($_POST['status_miskin'] ?? '');
$jumlahAnggota = intval($_POST['jumlah_anggota'] ?? 0);
$anggotaRaw = $_POST['anggota'] ?? '[]';
$aidStatus = $conn->real_escape_string($_POST['aid_status'] ?? 'outside');
$hasData = intval($_POST['has_data'] ?? 0);
// Validasi anggota JSON
$anggotaDecoded = json_decode($anggotaRaw, true);
if (!is_array($anggotaDecoded)) $anggotaDecoded = [];
$anggotaJson = $conn->real_escape_string(json_encode($anggotaDecoded, JSON_UNESCAPED_UNICODE));
$validStatuses = ['sangat_miskin','miskin','tidak_miskin',''];
if (!in_array($statusMiskin, $validStatuses)) $statusMiskin = '';
$validAid = ['helped','not_helped','outside'];
if (!in_array($aidStatus, $validAid)) $aidStatus = 'outside';
if ($id > 0) {
// UPDATE
$sql = "UPDATE houses SET
latitude=$lat, longitude=$lng,
address='$address', rt='$rt', rw='$rw', kelurahan='$kelurahan',
status_miskin='$statusMiskin', jumlah_anggota=$jumlahAnggota,
anggota='$anggotaJson', aid_status='$aidStatus', has_data=$hasData,
updated_at=NOW()
WHERE id=$id";
if ($conn->query($sql)) {
echo json_encode(['success'=>true,'id'=>$id,'action'=>'updated']);
} else {
echo json_encode(['success'=>false,'message'=>$conn->error]);
}
} else {
// INSERT
$sql = "INSERT INTO houses
(latitude, longitude, address, rt, rw, kelurahan,
status_miskin, jumlah_anggota, anggota, aid_status, has_data)
VALUES
($lat, $lng, '$address', '$rt', '$rw', '$kelurahan',
'$statusMiskin', $jumlahAnggota, '$anggotaJson', '$aidStatus', $hasData)";
if ($conn->query($sql)) {
$newId = $conn->insert_id;
echo json_encode(['success'=>true,'id'=>$newId,'action'=>'inserted']);
} else {
echo json_encode(['success'=>false,'message'=>$conn->error]);
}
}
$conn->close();