<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
$pdo = db_connect(); // DB 연결 함수 호출

// 타임 리미트 설정
set_time_limit(0);

// 출력 버퍼링 비활성화
ob_implicit_flush(true);

// 에러 출력 설정
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

print 'slat_su 합산 업데이트 작업 시작 <br>';

try {
    // output 테이블에서 num과 slatlist 컬럼 가져오기
    $output_sql = "SELECT num, slatlist FROM chandj.output";
    $output_stmt = $pdo->prepare($output_sql);
    $output_stmt->execute();
    $output_results = $output_stmt->fetchAll(PDO::FETCH_ASSOC);

    foreach ($output_results as $output_row) {
        $output_num = $output_row['num'];
        $slatlist_data = json_decode($output_row['slatlist'], true);
        $total_number = 0;

        // slatlist 데이터에서 'number' 값을 합산
        if (is_array($slatlist_data)) {
            foreach ($slatlist_data as $item) {
                $total_number += (int)$item['number'];
            }
        }

        // output 테이블의 slat_su 업데이트
        $update_sql = "UPDATE chandj.output SET slat_su = :slat_su WHERE num = :num";
        $update_stmt = $pdo->prepare($update_sql);
        $update_stmt->bindParam(':slat_su', $total_number, PDO::PARAM_INT);
        $update_stmt->bindParam(':num', $output_num, PDO::PARAM_INT);
        if (!$update_stmt->execute()) {
            echo "레코드 업데이트 중 오류 발생, num $output_num: " . implode(", ", $update_stmt->errorInfo()) . "<br>";
        } else {
            echo "num $output_num 업데이트 완료. slat_su: $total_number<br>";
        }
    }

    echo "모든 레코드 처리 완료.";
} catch (PDOException $e) {
    echo "오류: " . $e->getMessage();
}
?>
</body>
</html>
