'; 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); $total_rows = count($output_results); $current_row = 0; foreach ($output_results as $output_row) { $output_num = $output_row['num']; $slatlist_json = $output_row['slatlist']; $slatlist_data = json_decode($slatlist_json, true); $slat = '0'; $slat_su = 0; $slat_m2 = 0; if (!is_null($slatlist_data) && !empty($slatlist_data)) { $slat = '1'; foreach ($slatlist_data as $row_temp) { $number = (int)$row_temp["number"]; $cutwidth = (int)$row_temp["cutwidth"]; $cutheight = (int)$row_temp["cutheight"]; $slat_su += $number; $slat_m2 += $cutwidth / 1000 * $cutheight / 1000 * $number; } } $slat_state = '제작완료'; // output 테이블 업데이트 $update_sql = "UPDATE chandj.output SET slat = :slat, slat_state = :slat_state, slat_su = :slat_su, slat_m2 = :slat_m2 WHERE num = :num"; $update_stmt = $pdo->prepare($update_sql); $update_stmt->bindParam(':slat', $slat, PDO::PARAM_STR); $update_stmt->bindParam(':slat_state', $slat_state, PDO::PARAM_STR); $update_stmt->bindParam(':slat_su', $slat_su, PDO::PARAM_INT); $update_stmt->bindParam(':slat_m2', $slat_m2, PDO::PARAM_STR); // m2 값을 소수점으로 저장하기 위해 STR 사용 $update_stmt->bindParam(':num', $output_num, PDO::PARAM_INT); if (!$update_stmt->execute()) { echo "Error updating record for num $output_num: " . implode(", ", $update_stmt->errorInfo()) . "
"; } // 진행 상황 출력 $current_row++; echo "Processed rows: $current_row
"; if ($current_row % 100 == 0) { echo "Processed $current_row of $total_rows rows
"; } } echo "Finished processing all records."; } catch (PDOException $e) { echo "Error: " . $e->getMessage(); } ?>