44 lines
1.6 KiB
PHP
44 lines
1.6 KiB
PHP
<?php
|
|
header("Content-Type: application/json; charset=UTF-8");
|
|
include_once '../db_connect.php';
|
|
|
|
$data = json_decode(file_get_contents("php://input"));
|
|
|
|
if (is_array($data)) {
|
|
$conn->begin_transaction();
|
|
$inserted = 0;
|
|
$errors = [];
|
|
foreach ($data as $item) {
|
|
if (isset($item->lat) && isset($item->lng) && $item->lat !== '' && $item->lng !== '') {
|
|
$nama = $conn->real_escape_string($item->nama ?? '');
|
|
$kategori = $conn->real_escape_string($item->kategori_bantuan ?? 'Makan');
|
|
$jumlah_jiwa = (int)($item->jumlah_jiwa ?? 1);
|
|
$lat = (float)$item->lat;
|
|
$lng = (float)$item->lng;
|
|
|
|
$query = "INSERT INTO penduduk_miskin (nama, kategori_bantuan, jumlah_jiwa, lat, lng)
|
|
VALUES ('$nama', '$kategori', $jumlah_jiwa, $lat, $lng)";
|
|
|
|
if (!$conn->query($query)) {
|
|
$errors[] = $conn->error;
|
|
} else {
|
|
$inserted++;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (empty($errors) && $inserted > 0) {
|
|
$conn->commit();
|
|
echo json_encode(["status" => "success", "message" => "Berhasil mengimpor $inserted data penduduk miskin."]);
|
|
} else if ($inserted === 0) {
|
|
$conn->rollback();
|
|
echo json_encode(["status" => "error", "message" => "Tidak ada data valid yang diimpor."]);
|
|
} else {
|
|
$conn->rollback();
|
|
echo json_encode(["status" => "error", "message" => "Gagal mengimpor beberapa data. Transaksi dibatalkan.", "errors" => $errors]);
|
|
}
|
|
} else {
|
|
echo json_encode(["status" => "error", "message" => "Format data salah."]);
|
|
}
|
|
?>
|