first commit
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
<?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
|
||||
]);
|
||||
?>
|
||||
Reference in New Issue
Block a user