Untitled

mail@pastecode.io avatar
unknown
php
8 months ago
5.4 kB
5
Indexable
Never
<?php
session_start();
require_once '../../../helper/connection.php';

$nik = $_POST['nik'];
$nama_lengkap = $_POST['nama_lengkap'];
$no_tps = $_POST['no_tps'];
$alamat = $_POST['alamat'];
$kelurahan = $_POST['kelurahan'];
$kecamatan = $_POST['kecamatan'];
$kabupaten = $_POST['kabupaten'];
$no_hp = $_POST['no_hp'];
$wilprovinsi = isset($_POST['wilprovinsi']) ? 'true' : 'false';
$wilkabupaten = isset($_POST['wilkabupaten']) ? 'true' : 'false';
$wilpusat = isset($_POST['wilpusat']) ? 'true' : 'false';
$tim_pendata = $_POST['tim_pendata'];
$no_hp_tim_pendata = $_POST['no_hp_tim_pendata'];

// Normalisasi nomor HP
$no_hp = preg_replace("/[^0-9]/", "", $_POST['no_hp']);

// Normalisasi nomor HP tim pendata
$no_hp_tim_pendata = preg_replace("/[^0-9]/", "", $_POST['no_hp_tim_pendata']);

// Mengubah nomor yang dimulai dengan +62 menjadi 0
if (substr($no_hp, 0, 2) === "62") {
    $no_hp = "0" . substr($no_hp, 2);
}

if (substr($no_hp_tim_pendata, 0, 2) === "62") {
    $no_hp_tim_pendata = "0" . substr($no_hp_tim_pendata, 2);
}

// Pemeriksaan apakah NIK sudah ada dan periksa tim_pendata yang menginput
// $checkDuplicateQuery = "SELECT kecamatan, kelurahan, kabupaten FROM data_pemilih WHERE nik = ? LIMIT 1";
// $checkDuplicateQuery = "SELECT dp.kecamatan, dp.kelurahan, dp.kabupaten, pt.nama AS nama_pendata
//                        FROM data_pemilih dp
//                        LEFT JOIN pendata pt ON dp.tim_pendata = pt.id
//                        WHERE dp.nik = ? LIMIT 1";
// $checkDuplicateQuery = "SELECT pt.nama AS nama_pendata, pt.kecamatan AS kecamatan_pendata, pt.kelurahan AS kelurahan_pendata,
// dp.kecamatan AS kecamatan_pemilih, dp.kelurahan AS kelurahan_pemilih,
// dp.kabupaten AS kabupaten_pemilih
// FROM data_pemilih dp
// LEFT JOIN pendata pt ON dp.tim_pendata = pt.id
// WHERE dp.nik = ? LIMIT 1";

$checkDuplicateQuery = "SELECT pt.nama AS nama_pendata, 
                                d1.name AS kecamatan_pendata,
                                v1.name AS kelurahan_pendata,
                                d2.name AS kecamatan_pemilih,
                                v2.name AS kelurahan_pemilih,
                                dp.kabupaten AS kabupaten_pemilih
                       FROM data_pemilih dp
                       LEFT JOIN pendata pt ON dp.tim_pendata = pt.id
                       LEFT JOIN districts d1 ON pt.kecamatan = d1.id
                       LEFT JOIN villages v1 ON pt.kelurahan = v1.id
                       LEFT JOIN districts d2 ON dp.kecamatan = d2.id
                       LEFT JOIN villages v2 ON dp.kelurahan = v2.id
                       WHERE dp.nik = ? LIMIT 1";



// Persiapkan statement
$stmtCheckDuplicate = mysqli_prepare($connection, $checkDuplicateQuery);

// Bind parameter ke statement
mysqli_stmt_bind_param($stmtCheckDuplicate, "s", $nik);

// Eksekusi statement
mysqli_stmt_execute($stmtCheckDuplicate);

// Ambil hasil query
mysqli_stmt_store_result($stmtCheckDuplicate);

// Bind kolom ke variabel
mysqli_stmt_bind_result($stmtCheckDuplicate, $namaPendata, $kecamatanPendata, $kelurahanPendata, $kecamatanPemilih, $kelurahanPemilih, $kabupatenPemilih);

// Periksa jumlah baris yang dikembalikan
if (mysqli_stmt_num_rows($stmtCheckDuplicate) > 0) {
    // Fetch nilai dari kolom
    mysqli_stmt_fetch($stmtCheckDuplicate);

    // NIK sudah ada, berikan pesan dan arahkan kembali ke halaman input
    $_SESSION['info'] = [
        'status' => 'failed',
        'message' => 'NIK sudah terdaftar Oleh ' . $namaPendata . ' dari kecamatan ' . $kecamatanPendata . ' dan kelurahan ' . $kelurahanPendata
    ];
    header('Location: ./create.php');
    exit();
}

// Tutup statement pemeriksaan duplikasi
mysqli_stmt_close($stmtCheckDuplicate);

// Jika NIK belum ada, lakukan penyisipan
// Persiapkan query dengan parameter
// $query = "INSERT INTO data_pemilih (nik, nama_lengkap, no_tps, alamat, kelurahan, kecamatan, kabupaten, no_hp, tim_pendata, no_hp_tim_pendata) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

$query = "INSERT INTO data_pemilih (
    nik, nama_lengkap, no_tps, alamat, kelurahan, kecamatan, kabupaten, 
    no_hp, wilprovinsi, wilkabupaten, wilpusat, tim_pendata, no_hp_tim_pendata
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

// Persiapkan statement
$stmt = mysqli_prepare($connection, $query);

// Bind parameter ke statement
// mysqli_stmt_bind_param($stmt, "ssssssssss", $nik, $nama_lengkap, $no_tps, $alamat, $kelurahan, $kecamatan, $kabupaten, $no_hp, $tim_pendata, $no_hp_tim_pendata);

mysqli_stmt_bind_param(
    $stmt,
    "ssssssssssss",
    $nik,
    $nama_lengkap,
    $no_tps,
    $alamat,
    $kelurahan,
    $kecamatan,
    $kabupaten,
    $no_hp,
    $wilprovinsi,
    $wilkabupaten,
    $wilpusat,
    $tim_pendata,
    $no_hp_tim_pendata
);

// Eksekusi statement
$result = mysqli_stmt_execute($stmt);

if ($result) {
    $_SESSION['info'] = [
        'status' => 'success',
        'message' => 'Berhasil menambah data'
    ];
    header('Location: ./list.php');
} else {
    $_SESSION['info'] = [
        'status' => 'failed',
        'message' => mysqli_error($connection)
    ];
    header('Location: ./create.php');
}

// Tutup statement
mysqli_stmt_close($stmt);