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); ?>