prepare("DELETE FROM rumah_ibadah_points WHERE id=:id"); $stmt->execute([':id' => $id]); $msg = 'Berhasil dihapus.'; } catch (Exception $e) { $err = $e->getMessage(); } } // Save (create/update) if ($_SERVER['REQUEST_METHOD'] === 'POST') { $id = (int)($_POST['id'] ?? 0); $nama = trim($_POST['nama'] ?? ''); $jenis = trim($_POST['jenis'] ?? 'Lainnya'); $kontak = trim($_POST['kontak'] ?? ''); $radius = (float)($_POST['radius_meter'] ?? 300); $lat = $_POST['latitude'] ?? null; $lng = $_POST['longitude'] ?? null; $address = trim($_POST['address'] ?? ''); if ($nama === '' || $radius <= 0 || $lat === null || $lng === null) { $err = 'Data belum lengkap (nama/radius/lat/lng).'; } else { try { $cols = $pdo->query("SHOW COLUMNS FROM rumah_ibadah_points")->fetchAll(PDO::FETCH_COLUMN, 0); $hasJenis = in_array('jenis', $cols, true); $hasKontak = in_array('kontak', $cols, true); if ($id > 0) { if ($hasJenis && $hasKontak) { $stmt = $pdo->prepare("UPDATE rumah_ibadah_points SET nama=:n, jenis=:j, kontak=:k, radius_meter=:r, latitude=:lat, longitude=:lng, address=:a WHERE id=:id"); $stmt->execute([':n'=>$nama,':j'=>$jenis ?: 'Lainnya',':k'=>$kontak ?: null,':r'=>$radius,':lat'=>$lat,':lng'=>$lng,':a'=>$address ?: null,':id'=>$id]); } else { $stmt = $pdo->prepare("UPDATE rumah_ibadah_points SET nama=:n, radius_meter=:r, latitude=:lat, longitude=:lng, address=:a WHERE id=:id"); $stmt->execute([':n'=>$nama,':r'=>$radius,':lat'=>$lat,':lng'=>$lng,':a'=>$address ?: null,':id'=>$id]); } $msg = 'Berhasil diupdate.'; } else { if ($hasJenis && $hasKontak) { $stmt = $pdo->prepare("INSERT INTO rumah_ibadah_points (nama, jenis, kontak, radius_meter, latitude, longitude, address) VALUES (:n,:j,:k,:r,:lat,:lng,:a)"); $stmt->execute([':n'=>$nama,':j'=>$jenis ?: 'Lainnya',':k'=>$kontak ?: null,':r'=>$radius,':lat'=>$lat,':lng'=>$lng,':a'=>$address ?: null]); } else { $stmt = $pdo->prepare("INSERT INTO rumah_ibadah_points (nama, radius_meter, latitude, longitude, address) VALUES (:n,:r,:lat,:lng,:a)"); $stmt->execute([':n'=>$nama,':r'=>$radius,':lat'=>$lat,':lng'=>$lng,':a'=>$address ?: null]); } $msg = 'Berhasil ditambahkan.'; } } catch (Exception $e) { $err = $e->getMessage(); } } } $edit = null; if (isset($_GET['edit'])) { $id = (int)$_GET['edit']; $stmt = $pdo->prepare("SELECT * FROM rumah_ibadah_points WHERE id=:id"); $stmt->execute([':id' => $id]); $edit = $stmt->fetch() ?: null; } $rows = []; try { $rows = $pdo->query(" SELECT r.*, (SELECT COUNT(*) FROM pemukiman_miskin_points p WHERE p.rumah_ibadah_id=r.id) AS binaan_count FROM rumah_ibadah_points r ORDER BY r.id ASC ")->fetchAll(); } catch (Exception $e) {} render_header('Admin Rumah Ibadah'); ?>