Files
UAS_WEBGIS_DestraAuliaFazaA…/webgis-geopoverty/php/export_csv.php
T
2026-06-10 16:50:45 +07:00

68 lines
2.5 KiB
PHP

<?php
error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_WARNING);
include 'koneksi.php';
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename="Data_Keluarga_Prasejahtera_GeoPoverty.csv"');
$output = fopen('php://output', 'w');
// Header CSV
fputcsv($output, [
'ID',
'Nama Kepala Keluarga',
'Alamat',
'Latitude',
'Longitude',
'Status Keluarga',
'Jumlah Jiwa',
'Daftar Anggota Keluarga (Nama - Hubungan - Pendidikan)',
'Total Bantuan Diterima (Kali)',
'Riwayat Bantuan (Detail)',
'Laporan Darurat / Kondisi',
'Tanggal Didata',
'Terakhir Diubah'
]);
$query = "
SELECT
k.id, k.nama_kepala_keluarga, k.alamat, k.latitude, k.longitude, k.status_keluarga, k.jumlah_kk, k.created_at, k.updated_at,
(SELECT GROUP_CONCAT(CONCAT(nama, ' (', hubungan_keluarga, ' - ', pendidikan, ')') SEPARATOR ' | ') FROM anggota_keluarga WHERE kemiskinan_id = k.id) as rincian_anggota,
(SELECT COUNT(id) FROM histori_bantuan WHERE kemiskinan_id = k.id AND status_penyaluran = 'tersalur') as total_bantuan,
(SELECT GROUP_CONCAT(CONCAT(tanggal_bantuan, ': ', jenis_bantuan, ' - ', deskripsi_bantuan) SEPARATOR ' | ') FROM histori_bantuan WHERE kemiskinan_id = k.id AND status_penyaluran = 'tersalur') as riwayat_bantuan,
(SELECT GROUP_CONCAT(CONCAT(DATE(created_at), ': ', kategori, ' - ', deskripsi) SEPARATOR ' | ') FROM laporan_kondisi WHERE kemiskinan_id = k.id) as laporan_darurat
FROM kemiskinan k
ORDER BY k.id DESC
";
$result = mysqli_query($conn, $query);
if ($result) {
while ($row = mysqli_fetch_assoc($result)) {
// Clean status label
$status = ucfirst(str_replace('_', ' ', $row['status_keluarga']));
if ($row['status_keluarga'] == 'sudah_mampu') $status = 'Sudah Mampu';
fputcsv($output, [
$row['id'],
$row['nama_kepala_keluarga'],
$row['alamat'],
$row['latitude'],
$row['longitude'],
$status,
$row['jumlah_kk'],
$row['rincian_anggota'] ? $row['rincian_anggota'] : 'Belum didata',
$row['total_bantuan'] . ' kali',
$row['riwayat_bantuan'] ? $row['riwayat_bantuan'] : 'Tidak ada catatan bantuan',
$row['laporan_darurat'] ? $row['laporan_darurat'] : 'Tidak ada laporan',
$row['created_at'],
$row['updated_at']
]);
}
}
fclose($output);
exit();
?>