Mini Shell

Direktori : /var/www/vhosts/ccp.ac.th/backup_full/httpdocs/fertilizer/
Upload File :
Current File : /var/www/vhosts/ccp.ac.th/backup_full/httpdocs/fertilizer/import_user_confirm.php

<?php
// ============================================
// Script นำเข้าข้อมูล user_confirm
// ============================================
header('Content-Type: application/json; charset=utf-8');
include 'db/database.php';

$response = array();

try {
    // ===== 1. ลบตารางเก่า (ถ้ามี) =====
    $drop_sql = "DROP TABLE IF EXISTS `user_confirm`";
    if (!mysqli_query($link, $drop_sql)) {
        throw new Exception('Drop table error: ' . mysqli_error($link));
    }
    $response['drop_table'] = 'ลบตารางเก่าสำเร็จ';

    // ===== 2. สร้างตารางใหม่ =====
    $create_sql = "CREATE TABLE `user_confirm` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) NOT NULL,
      `last_name` varchar(255) NOT NULL,
      `position` varchar(255) NULL,
      `agency` varchar(255) NULL,
      PRIMARY KEY (`id`),
      INDEX `idx_name` (`name`, `last_name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
    
    if (!mysqli_query($link, $create_sql)) {
        throw new Exception('Create table error: ' . mysqli_error($link));
    }
    $response['create_table'] = 'สร้างตาราง user_confirm สำเร็จ';

    // ===== 3. นำเข้าข้อมูลจาก CSV =====
    $csv_file = 'user_confirm.csv';
    
    if (!file_exists($csv_file)) {
        throw new Exception('ไม่พบไฟล์ ' . $csv_file);
    }

    $file_handle = fopen($csv_file, 'r');
    if (!$file_handle) {
        throw new Exception('ไม่สามารถเปิดไฟล์ CSV');
    }

    $header = true;
    $import_count = 0;
    $errors = array();
    $import_data = array();

    while (($row = fgetcsv($file_handle, 1000, ',')) !== FALSE) {
        // ข้ามแถวหัวข้อ
        if ($header) {
            $header = false;
            continue;
        }
        
        // เช็คจำนวน column ต้องอย่างน้อย 3 (ลำดับที่, ชื่อ, นามสกุล)
        if (count($row) < 3) {
            continue;
        }
        
        $name = mysqli_real_escape_string($link, trim($row[1]));
        $last_name = mysqli_real_escape_string($link, trim($row[2]));
        $position = isset($row[3]) ? mysqli_real_escape_string($link, trim($row[3])) : '';
        $agency = isset($row[4]) ? mysqli_real_escape_string($link, trim($row[4])) : '';
        
        if (empty($name) || empty($last_name)) {
            continue;
        }
        
        $import_data[] = "('$name', '$last_name', '$position', '$agency')";
        $import_count++;
    }

    fclose($file_handle);

    // ===== 4. บันทึกทั้งหมด =====
    if (!empty($import_data)) {
        $insert_sql = "INSERT INTO user_confirm (name, last_name, position, agency) VALUES " . 
                      implode(',', $import_data);
        
        if (!mysqli_query($link, $insert_sql)) {
            throw new Exception('Insert data error: ' . mysqli_error($link));
        }
    }

    $response['import_success'] = "นำเข้าข้อมูล $import_count รายการสำเร็จ";

    // ===== 5. นับจำนวนข้อมูล =====
    $count_sql = "SELECT COUNT(*) AS total FROM user_confirm";
    $count_result = mysqli_query($link, $count_sql);
    if (!$count_result) {
        throw new Exception('Count error: ' . mysqli_error($link));
    }
    $count_row = mysqli_fetch_assoc($count_result);

    $response['total_records'] = $count_row['total'];
    $response['status'] = 'success';
    $response['message'] = 'ตั้งค่าฐานข้อมูลสำเร็จ!';

} catch (Exception $e) {
    $response['status'] = 'error';
    $response['message'] = 'เกิดข้อผิดพลาด: ' . $e->getMessage();
}

echo json_encode($response, JSON_UNESCAPED_UNICODE);
?>

Zerion Mini Shell 1.0