prepare($sql); $stmh->bindValue(1, $num, PDO::PARAM_STR); $stmh->execute(); $count = $stmh->rowCount(); if ($count < 1) { print "검색결과가 없습니다.
"; } else { $row = $stmh->fetch(PDO::FETCH_ASSOC); include "_row.php"; // output_extra 테이블에서 데이터 불러오기 require_once $_SERVER['DOCUMENT_ROOT'] . '/output/load_output_extraTable.php'; } } catch (PDOException $Exception) { print "오류: " . $Exception->getMessage(); } // JSON 문자열을 PHP 배열로 디코딩합니다. //스크린발주서 읽기 $eList = json_decode($estimateList, true); // 행의 수는 배열의 크기와 동일하므로, count() 함수를 사용하여 구합니다. $surang = count($eList); // 행의 수를 출력하거나 활용할 수 있습니다. // echo "행의 수: " . $surang . "
"; $THscreenSu = $surang + 2 ; $rowCounter = 1; // 아이템 행 카운터 초기값 0 // 디코딩된 데이터가 배열인지 확인합니다. if (!is_array($eList)) { echo "데이터가 정상적이지 않습니다. 확인바랍니다."; exit; } else { foreach ($eList as $item) { $prodcode = $item['col4']; $items1 = ['KSS01','KSS02','KSE01']; $items2 = ['KWE01']; // $prodcode가 $items1 배열에 있는 경우 if (in_array($prodcode, $items1)) { $prodname = '국민방화 스크린 셔터'; } // $prodcode가 $items2 배열에 있는 경우 elseif (in_array($prodcode, $items2)) { $prodname = '국민방화 스크린 플러스 셔터'; } else { $prodname = 'Unknown'; // $prodcode가 어느 배열에도 없는 경우 } } } // 'mode' 파라미터로 현재 모드 결정 (기본: 전체) $mode = $_GET['mode'] ?? 'serial'; // 2. 그룹화 준비 $allData = $eList; $bySerial = []; $byFloor = []; foreach ($eList as $item) { // JSON 내부 키 이름에 맞게 수정하세요! $serial = $item['serial_num']; // 예: 일련번호 필드 $floor = $item['floor_level']; // 예: 층 정보 필드 $bySerial[$serial][] = $item; $byFloor[$floor][] = $item; } // 3. 선택된 모드에 따라 출력할 배열 결정 switch ($mode) { case 'serial': $displayData = $bySerial; break; case 'floor': $displayData = $byFloor; break; default: $displayData = $allData; break; } ?>

   ' . $rowCounter . '. 부호별 절곡, 부자재 내역
'; echo '
'; // 가이드레일 정보 표시 if (trim($prodcode) == "KSS01") { $result = $rowCounter . "-1. 가이드레일 - EGI 1.55T + 마감재 SUS 1.2T"; } elseif ($prodcode == "KSE01") { $result = $rowCounter . "-1. 가이드레일 - EGI 1.55T + 마감재 EGI 1.15T"; } else { $result = $rowCounter . "-1. 가이드레일 - EGI 1.55T + 마감재 EGI 1.15T + 별도마감재 SUS 1.15T"; } echo $result; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; foreach ($case_sizes as $size) echo ""; echo ''; echo ''; foreach ($eList as $item) { echo ''; echo ''; echo ''; $col = 38; // 케이스 시작번호 foreach ($case_sizes as $size) { $colName = 'col' . $col; echo ''; $col++; } // 연기차단재 W80 echo ''; // 상부덮개 1219*389 echo ''; echo ''; } echo '
일련
번호
층 부호케이스(셔터박스)케이스용
연기차단재
W80
상부덮개
(1219
*380)
$size
' . htmlspecialchars($item['col1']) . '' . htmlspecialchars($item['col2']) . ' '. htmlspecialchars($item['col3']) . '' . (isset($item[$colName]) ? $item[$colName] : '') . '' . (isset($item['col47']) ? htmlspecialchars($item['col47']) : '') . '' . (isset($item['col44']) ? htmlspecialchars($item['col44']) : '') . '
'; echo '
'; // 가이드레일 정보 표시 $result = $rowCounter . "-2. 케이스 - EGI 1.55T"; echo $result; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; foreach ($guiderail_sizes as $size) echo ""; echo ''; echo ''; foreach ($eList as $item) { echo ''; echo ''; echo ''; echo ''; $col = 24; // 가이드레일 시작번호 foreach ($guiderail_sizes as $size) { $colName = 'col' . $col; echo ''; $col++; } echo ''; } echo '
일련 번호층 부호가이드레일 유형가이드레일
$size
' . htmlspecialchars($item['col1']) . '' . htmlspecialchars($item['col2']) . ' '. htmlspecialchars($item['col3']) . '' . (isset($item['col6']) ? htmlspecialchars($item['col6']) : '') . '' . (isset($item[$colName]) ? $item[$colName] : '') . '
'; ?>    ' . $rowCounter . '-3. 하단마감재 - 하단마감재(SUS 1.55T) + 하단보강엘바(EGI 1.55T) + 하단 보강평철(EGI 1.15T) + 하단 무게평철(50*12T)
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; foreach ($eList as $item) { echo ''; // ① 일련번호 (col1) $val1 = $item['col1'] ?? ''; echo ''; // ② 층 부호 (col2, col3) $val2 = $item['col2'] ?? ''; $val3 = $item['col3'] ?? ''; $output23 = ''; if (!($val2 === 0 || $val2 === '0')) { $output23 .= htmlspecialchars($val2); } if (!($val3 === 0 || $val3 === '0')) { if ($output23 !== '') { $output23 .= ' '; } $output23 .= htmlspecialchars($val3); } echo ''; // 하단마감재(hajangba_cols) foreach ($hajangba_cols as $col) { $val = $item[$col] ?? ''; echo ''; } // 엘바(elba_cols) foreach ($elba_cols as $col) { $val = $item[$col] ?? ''; echo ''; } // 보강평철(plate_cols) foreach ($plate_cols as $col) { $val = $item[$col] ?? ''; echo ''; } // 무게평철(weight_cols) foreach ($weight_cols as $col) { $val = $item[$col] ?? ''; echo ''; } echo ''; } echo '
일련번호층 부호하장바엘바보강평철무게평철
3000400030004000300040002000
' . (($val1 === 0 || $val1 === '0') ? '' : htmlspecialchars($val1)) . '' . $output23 . '' . (($val === 0 || $val === '0') ? '' : htmlspecialchars($val)) . '' . (($val === 0 || $val === '0') ? '' : htmlspecialchars($val)) . '' . (($val === 0 || $val === '0') ? '' : htmlspecialchars($val)) . '' . (($val === 0 || $val === '0') ? '' : htmlspecialchars($val)) . '
'; $rowCounter++; } // end of steel 체크 if(isset($partscheck) && $partscheck === '1') { // 부자재 col 매핑 // 보조샤프트 인치, 길이, 수량 읽어오기 $subshaft_data = []; foreach ($eList as $item) { $inch = $item['col59_inch']; $length = $item['col59_length']; if (!empty($inch) && !empty($length)) { $key = $inch . '_' . $length; if (!isset($subshaft_data[$key])) { $subshaft_data[$key] = [ 'inch' => $inch, 'length' => $length, 'count' => 0 ]; } $subshaft_data[$key]['count'] += (int)$item['col59']; } } // 정렬을 위해 키값으로 정렬 ksort($subshaft_data); $subshaft_cols = array_values($subshaft_data); $shaft_cols = [ 'col60', 'col61', 'col62', 'col63', 'col64', 'col65']; // 3in, 4in(3), 5in(2) $shaft_inch_headers = ['4인치', '4인치', '4인치', '5인치', '5인치', '5인치']; $shaft_length_headers = ['3000', '4500', '6000', '6000', '7000', '8200']; $recanglePipe_cols = [ 'col68', 'col69']; $pole_cols = ['col70']; $angle_cols = ['col71']; echo '
   ' . $rowCounter . '-1. 부자재 - 감기샤프트, 각파이프, 앵글
'; echo ''; echo ''; // 1st row: group headers echo ''; echo ''; echo ''; if (!empty($subshaft_cols)) { echo ''; } echo ''; echo ''; echo ''; echo ''; echo ''; // 2nd row: inch headers echo ''; if (!empty($subshaft_cols)) { foreach ($subshaft_cols as $col) { echo ''; } } echo ''; // foreach ($shaft_inch_headers as $inch) { // echo ''; // } echo ''; // 3rd row: length headers echo ''; if (!empty($subshaft_cols)) { foreach ($subshaft_cols as $col) { echo ''; } } foreach ($shaft_length_headers as $len) { echo ''; } echo ''; echo ''; echo ''; echo ''; echo ''; foreach ($eList as $item) { echo ''; // ① 일련번호 (col1) $val1 = $item['col1'] ?? ''; echo ''; // ② 층 부호 (col2, col3) $val2 = $item['col2'] ?? ''; $val3 = $item['col3'] ?? ''; $output23 = ''; if (!($val2 === 0 || $val2 === '0')) { $output23 .= htmlspecialchars($val2); } if (!($val3 === 0 || $val3 === '0')) { if ($output23 !== '') { $output23 .= ' '; } $output23 .= htmlspecialchars($val3); } echo ''; // 보조샤프트 데이터 출력 (있는 경우에만) if (!empty($subshaft_cols)) { $subshaft_index = 0; foreach ($subshaft_cols as $col) { $col_name = 'col' . (59 + $subshaft_index); $val = $item[$col_name] ?? ''; echo ''; $subshaft_index++; } } // 감기샤프트 데이터 출력 foreach ($shaft_cols as $col) { $val = $item[$col] ?? ''; echo ''; } // 나머지 부자재 데이터 출력 foreach ($recanglePipe_cols as $col) { $val = $item[$col] ?? ''; echo ''; } foreach ($pole_cols as $col) { $val = $item[$col] ?? ''; echo ''; } foreach ($angle_cols as $col) { $val = $item[$col] ?? ''; echo ''; } echo ''; } echo '
일련번호층 부호보조샤프트감기샤프트각파이프
50*30*1.4T
마환봉
6mm
앵글
40*40*3T
' . $col['inch'] . '4인치 (114.3 * 2)5인치 (139.8 * 2.9)' . $inch . '
' . $col['length'] . '' . $len . '3000600030002500
' . (($val1 === 0 || $val1 === '0') ? '' : htmlspecialchars($val1)) . '' . $output23 . '' . (($val === 0 || $val === '0') ? '' : htmlspecialchars($val)) . '' . (($val === 0 || $val === '0') ? '' : htmlspecialchars($val)) . '' . (($val === 0 || $val === '0') ? '' : htmlspecialchars($val)) . '' . (($val === 0 || $val === '0') ? '' : htmlspecialchars($val)) . '' . (($val === 0 || $val === '0') ? '' : htmlspecialchars($val)) . '
'; // ─────────────────────────────────────────────────── // 2-5. 부자재 - 연동제어기(매립/노출), 뒷박스, 레일용 연기차단재, 케이스용 연기차단재, 받침용 앵글, 모터용량 // ─────────────────────────────────────────────────── echo '
   ' . $rowCounter . '-2. 부자재 - 모터용량, 받침용 앵글, 연동제어기, 뒷박스
'; echo ''; echo ''; echo ''; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ''; echo ''; echo ''; foreach ($eList as $item) { echo ''; // ① 일련번호 (col1) echo ''; // ② 층 부호 (col2, col3) echo ''; // *** 아래 colXX 부분을 실제 컬럼명으로 바꿔주세요 *** // ⑪ 모터용량 → 예시: col19 echo ''; // ⑩ 받침용 앵글 → 예시: col20 echo ''; // ③ 연동제어기(매립) → 예시: col15 echo ''; // ④ 연동제어기(노출) → 예시: col16 echo ''; // ⑤ 뒷박스 → 예시: col17 echo ''; echo ''; } echo ''; echo '
일련번호층 부호모터용량받침용 앵글연동제어기
(매립)
연동제어기
(노출)
뒷박스
' . htmlspecialchars($item['col1']) . '' . htmlspecialchars($item['col2']) . ' ' . htmlspecialchars($item['col3']) . '' . (isset($item['col19']) ? htmlspecialchars($item['col19']) : '') . '' . (isset($item['col22']) ? htmlspecialchars($item['col22']) : '') . ' x 1 EA ' . (isset($item['col15']) ? htmlspecialchars($item['col15']) : '') . '' . (isset($item['col16']) ? htmlspecialchars($item['col16']) : '') . '' . (isset($item['col17']) ? htmlspecialchars($item['col17']) : '') . '
'; $rowCounter++; } // end of partscheck 체크 // 부자재 표현하기 JSON 데이터를 디코딩 $etcListArray = json_decode($etcList, true); if (is_array($etcListArray) && count($etcListArray) > 0) : ?>
3. 소모품(별도구매) - 방화실리콘, 세라크울, 제품검사비(인정표시)등은 추가사항으로 별도의 비용이 발생 함.