Files
UAS_WEBGIS_AnderiSaputra_D1…/kemiskinan/import_csv.php
T
Anderi Saputra adec71e763 first commit
2026-06-10 17:00:19 +07:00

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