Files

40 lines
2.0 KiB
PHP

<?php
include 'koneksi.php';
$tipe=$_GET['tipe']??'semua';
$data=[];
if ($tipe==='semua'||$tipe==='ibadah') {
$res=$conn->query("SELECT ri.*,
(SELECT COUNT(*) FROM penduduk p WHERE p.rumah_ibadah_id=ri.id AND p.status_hidup='hidup') AS total_penduduk,
(SELECT COUNT(*) FROM penduduk p WHERE p.rumah_ibadah_id=ri.id AND p.status_ekonomi='miskin') AS total_miskin
FROM rumah_ibadah ri");
if($res) while($r=$res->fetch_assoc()){$r['tipe']='ibadah';$data[]=$r;}
}
if ($tipe==='semua'||$tipe==='penduduk') {
$where=["p.lat IS NOT NULL","p.lng IS NOT NULL","p.status_hidup='hidup'"];
if(!empty($_GET['status_ekonomi'])){$se=$conn->real_escape_string($_GET['status_ekonomi']);$where[]="p.status_ekonomi='$se'";}
if(!empty($_GET['rumah_ibadah_id'])){$ri_id=(int)$_GET['rumah_ibadah_id'];$where[]="p.rumah_ibadah_id=$ri_id";}
if(!empty($_GET['status_bantuan'])){
if($_GET['status_bantuan']==='sudah') $where[]="p.id IN (SELECT DISTINCT penduduk_id FROM histori_bantuan WHERE status='disalurkan')";
else $where[]="p.id NOT IN (SELECT DISTINCT penduduk_id FROM histori_bantuan WHERE status='disalurkan')";
}
$w=implode(' AND ',$where);
$res=$conn->query("SELECT p.id,p.nik,p.nama,p.jenis_kelamin,
TIMESTAMPDIFF(YEAR,p.tanggal_lahir,CURDATE()) AS umur,
p.status_ekonomi,p.pekerjaan,p.penghasilan,p.lat,p.lng,p.rumah_ibadah_id,
ri.nama AS nama_ibadah,
(SELECT COUNT(*) FROM histori_bantuan hb WHERE hb.penduduk_id=p.id AND hb.status='disalurkan') AS total_bantuan
FROM penduduk p
LEFT JOIN rumah_ibadah ri ON p.rumah_ibadah_id=ri.id
WHERE $w");
if($res) while($r=$res->fetch_assoc()){$r['tipe']='penduduk';$r['penghasilan']=(float)$r['penghasilan'];$data[]=$r;}
}
if ($tipe==='semua'||$tipe==='laporan') {
$res=$conn->query("SELECT id,pelapor,deskripsi,lat,lng,urgensi,status,created_at FROM laporan WHERE lat IS NOT NULL AND lng IS NOT NULL");
if($res) while($r=$res->fetch_assoc()){$r['tipe']='laporan';$data[]=$r;}
}
json_out($data);