Files
webgis-poverty-pontianak/api/penduduk_miskin/bulk_create.php
T

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."]);
}
?>