130 lines
3.7 KiB
PHP
130 lines
3.7 KiB
PHP
<?php
|
|
// edit.php
|
|
// Mengedit atribut data jalan atau parsil tanah.
|
|
// Panjang, luas, dan geojson tidak diedit manual.
|
|
|
|
require_once "koneksi.php";
|
|
|
|
if ($_SERVER["REQUEST_METHOD"] !== "POST") {
|
|
json_response([
|
|
"success" => false,
|
|
"message" => "Edit data hanya menerima method POST."
|
|
], 405);
|
|
}
|
|
|
|
$tipe = $_POST["tipe"] ?? "";
|
|
$id = $_POST["id"] ?? "";
|
|
|
|
if (!is_numeric($id) || (int) $id <= 0) {
|
|
json_response([
|
|
"success" => false,
|
|
"message" => "ID tidak valid."
|
|
], 422);
|
|
}
|
|
|
|
$id = (int) $id;
|
|
|
|
if ($tipe === "jalan") {
|
|
$nama_jalan = trim($_POST["nama_jalan"] ?? "");
|
|
$status_jalan = $_POST["status_jalan"] ?? "";
|
|
$status_valid = ["nasional", "provinsi", "kabupaten"];
|
|
|
|
if ($nama_jalan === "") {
|
|
json_response(["success" => false, "message" => "Nama jalan wajib diisi."], 422);
|
|
}
|
|
|
|
if (!in_array($status_jalan, $status_valid, true)) {
|
|
json_response(["success" => false, "message" => "Status jalan tidak valid."], 422);
|
|
}
|
|
|
|
$stmt = $koneksi->prepare(
|
|
"UPDATE jalan
|
|
SET nama_jalan = ?, status_jalan = ?
|
|
WHERE id = ?"
|
|
);
|
|
|
|
if (!$stmt) {
|
|
json_response(["success" => false, "message" => "Prepare statement gagal: " . $koneksi->error], 500);
|
|
}
|
|
|
|
$stmt->bind_param("ssi", $nama_jalan, $status_jalan, $id);
|
|
|
|
if (!$stmt->execute()) {
|
|
json_response(["success" => false, "message" => "Gagal mengedit data jalan: " . $stmt->error], 500);
|
|
}
|
|
|
|
if ($stmt->affected_rows === 0) {
|
|
// Bisa saja data sama persis, jadi tetap cek apakah ID ada.
|
|
$cek = $koneksi->prepare("SELECT id FROM jalan WHERE id = ?");
|
|
$cek->bind_param("i", $id);
|
|
$cek->execute();
|
|
$hasil = $cek->get_result();
|
|
if ($hasil->num_rows === 0) {
|
|
json_response(["success" => false, "message" => "Data jalan tidak ditemukan."], 404);
|
|
}
|
|
$cek->close();
|
|
}
|
|
|
|
$stmt->close();
|
|
|
|
json_response([
|
|
"success" => true,
|
|
"message" => "Data jalan berhasil diedit."
|
|
]);
|
|
}
|
|
|
|
if ($tipe === "parsil") {
|
|
$nama_parsil = trim($_POST["nama_parsil"] ?? "");
|
|
$status_kepemilikan = $_POST["status_kepemilikan"] ?? "";
|
|
$status_valid = ["SHM", "HGB", "HGU", "HP"];
|
|
|
|
if ($nama_parsil === "") {
|
|
json_response(["success" => false, "message" => "Nama parsil wajib diisi."], 422);
|
|
}
|
|
|
|
if (!in_array($status_kepemilikan, $status_valid, true)) {
|
|
json_response(["success" => false, "message" => "Status kepemilikan tidak valid."], 422);
|
|
}
|
|
|
|
$stmt = $koneksi->prepare(
|
|
"UPDATE parsil_tanah
|
|
SET nama_parsil = ?, status_kepemilikan = ?
|
|
WHERE id = ?"
|
|
);
|
|
|
|
if (!$stmt) {
|
|
json_response(["success" => false, "message" => "Prepare statement gagal: " . $koneksi->error], 500);
|
|
}
|
|
|
|
$stmt->bind_param("ssi", $nama_parsil, $status_kepemilikan, $id);
|
|
|
|
if (!$stmt->execute()) {
|
|
json_response(["success" => false, "message" => "Gagal mengedit data parsil tanah: " . $stmt->error], 500);
|
|
}
|
|
|
|
if ($stmt->affected_rows === 0) {
|
|
// Bisa saja data sama persis, jadi tetap cek apakah ID ada.
|
|
$cek = $koneksi->prepare("SELECT id FROM parsil_tanah WHERE id = ?");
|
|
$cek->bind_param("i", $id);
|
|
$cek->execute();
|
|
$hasil = $cek->get_result();
|
|
if ($hasil->num_rows === 0) {
|
|
json_response(["success" => false, "message" => "Data parsil tanah tidak ditemukan."], 404);
|
|
}
|
|
$cek->close();
|
|
}
|
|
|
|
$stmt->close();
|
|
|
|
json_response([
|
|
"success" => true,
|
|
"message" => "Data parsil tanah berhasil diedit."
|
|
]);
|
|
}
|
|
|
|
json_response([
|
|
"success" => false,
|
|
"message" => "Tipe data tidak valid. Gunakan tipe=jalan atau tipe=parsil."
|
|
], 422);
|
|
?>
|