connect_error) { die(json_encode(['error' => 'Koneksi database gagal: ' . $conn->connect_error])); } $res = ['ibadah' => [], 'warga' => []]; // 1. Query Data Rumah Ibadah $sql_ib = $conn->query("SELECT * FROM data_rumah_ibadah"); if ($sql_ib) { while($r = $sql_ib->fetch_assoc()) { $geo = json_decode($r['geojson'], true); // Proteksi jika data geojson kosong atau gagal didecode if ($geo && isset($geo['geometry']['coordinates'])) { $res['ibadah'][] = [ 'id' => $r['id'], 'nama' => $r['nama_ibadah'], 'agama' => $r['jenis_agama'], 'lng' => $geo['geometry']['coordinates'][0], 'lat' => $geo['geometry']['coordinates'][1] ]; } } } // 2. Query Data Warga Prasejahtera (PERBAIKAN UTAMA DI SINI) $sql_w = $conn->query("SELECT * FROM data_warga"); if ($sql_w) { while($r = $sql_w->fetch_assoc()) { // Tambahkan parameter ', true' agar JSON di-decode menjadi Array, bukan Object $geojson_array = json_decode($r['geojson'], true); $res['warga'][] = [ 'id' => $r['id'], 'nama' => $r['nama_kk'], 'klasifikasi' => $r['klasifikasi'], 'luas' => $r['luas_meter'], 'solusi' => $r['rekomendasi_solusi'], 'geojson' => $geojson_array // Sekarang formatnya sudah serasi dengan Leaflet ]; } } // Keluarkan hasil akhir berupa JSON clean echo json_encode($res); $conn->close(); ?>