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