59 lines
1.5 KiB
PHP
59 lines
1.5 KiB
PHP
<?php
|
|
session_start();
|
|
$role = isset($_SESSION['role']) ? $_SESSION['role'] : '';
|
|
if ($role !== 'kemiskinan') {
|
|
echo json_encode(['status'=>'error','message'=>'Tidak diizinkan']);
|
|
exit;
|
|
}
|
|
|
|
include "koneksi.php";
|
|
|
|
if (!isset($_FILES['csvfile']) || $_FILES['csvfile']['error'] !== UPLOAD_ERR_OK) {
|
|
echo json_encode(['status'=>'error','message'=>'File tidak ditemukan atau gagal upload']);
|
|
exit;
|
|
}
|
|
|
|
$tmpPath = $_FILES['csvfile']['tmp_name'];
|
|
$handle = fopen($tmpPath, 'r');
|
|
if (!$handle) {
|
|
echo json_encode(['status'=>'error','message'=>'Gagal membaca file CSV']);
|
|
exit;
|
|
}
|
|
|
|
$inserted = 0;
|
|
$skipped = 0;
|
|
$rowNum = 0;
|
|
|
|
while (($row = fgetcsv($handle, 1000, ',')) !== false) {
|
|
$rowNum++;
|
|
if ($rowNum === 1) continue; // skip header
|
|
|
|
// Expected columns: nama, alamat, keterangan, latitude, longitude
|
|
if (count($row) < 5) { $skipped++; continue; }
|
|
|
|
$nama = $conn->real_escape_string(trim($row[0]));
|
|
$alamat = $conn->real_escape_string(trim($row[1]));
|
|
$ket = $conn->real_escape_string(trim($row[2]));
|
|
$lat = doubleval($row[3]);
|
|
$lng = doubleval($row[4]);
|
|
|
|
if (!$nama || !$lat || !$lng) { $skipped++; continue; }
|
|
|
|
$sql = "INSERT INTO tb_rumah (nama, alamat, keterangan, latitude, longitude)
|
|
VALUES ('$nama', '$alamat', '$ket', $lat, $lng)";
|
|
if ($conn->query($sql)) {
|
|
$inserted++;
|
|
} else {
|
|
$skipped++;
|
|
}
|
|
}
|
|
|
|
fclose($handle);
|
|
|
|
echo json_encode([
|
|
'status' => 'success',
|
|
'inserted' => $inserted,
|
|
'skipped' => $skipped
|
|
]);
|
|
?>
|