prepare($sql); $stmt->execute($params); $result = $stmt->fetch(PDO::FETCH_ASSOC); // JSON 응답 반환 header('Content-Type: application/json'); if ($result) { echo json_encode([ 'success' => true, 'data' => $result ]); } else { echo json_encode([ 'success' => false, 'data' => null ]); } exit; } else { // GET 요청: HTML 응답 (검색 결과 표시용) // GET 파라미터 받기 - JavaScript에서 보내는 파라미터 이름과 일치 $selectedItem = $_GET['selectedItem'] ?? ''; $selectedUA = $_GET['selectedUA'] ?? ''; $selectedBendingCategory = $_GET['selectedBendingCategory'] ?? ''; $selectedName = $_GET['selectedName'] ?? ''; $selectedMaterial = $_GET['selectedMaterial'] ?? ''; $search = $_GET['search'] ?? ''; // SQL 쿼리 구성 $sql = "SELECT * FROM {$DB}.bending WHERE is_deleted IS NULL"; $params = []; // 대분류 필터 (item_sep) if (!empty($selectedItem)) { $sql .= " AND item_sep = :selectedItem"; $params[':selectedItem'] = $selectedItem; } // 인정/비인정 필터 (model_UA) if (!empty($selectedUA)) { $sql .= " AND model_UA = :selectedUA"; $params[':selectedUA'] = $selectedUA; } // 중분류 필터 (item_bending) if (!empty($selectedBendingCategory)) { $sql .= " AND item_bending = :selectedBendingCategory"; $params[':selectedBendingCategory'] = $selectedBendingCategory; } // 품명 필터 (itemName) if (!empty($selectedName)) { $sql .= " AND itemName = :selectedName"; $params[':selectedName'] = $selectedName; } // 재질 필터 (material) if (!empty($selectedMaterial)) { $sql .= " AND material = :selectedMaterial"; $params[':selectedMaterial'] = $selectedMaterial; } // 검색어 필터 (모든 텍스트 필드에서 검색) if (!empty($search)) { $searchTerm = '%' . $search . '%'; $sql .= " AND (itemName LIKE :search_name OR material LIKE :search_material OR item_sep LIKE :search_sep OR item_bending LIKE :search_bending OR model_UA LIKE :search_ua)"; $params[':search_name'] = $searchTerm; $params[':search_material'] = $searchTerm; $params[':search_sep'] = $searchTerm; $params[':search_bending'] = $searchTerm; $params[':search_ua'] = $searchTerm; } $sql .= " ORDER BY num DESC"; // 디버깅용 로그 error_log("Search SQL: " . $sql); error_log("Search Params: " . print_r($params, true)); $stmt = $pdo->prepare($sql); $stmt->execute($params); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); // guiderail.json 읽기 $jsonFile = $_SERVER['DOCUMENT_ROOT'].'/guiderail/guiderail.json'; $guiderailData = []; if (file_exists($jsonFile)) { $jsonContent = file_get_contents($jsonFile); $guiderailData = json_decode($jsonContent, true); if (!is_array($guiderailData)) $guiderailData = []; } // 결과 출력 if (empty($results)) { echo '검색 결과가 없습니다.'; } else { foreach ($results as $row) { $num = $row['num']; $itemName = $row['itemName'] ?? ''; $material = $row['material'] ?? ''; $item_sep = $row['item_sep'] ?? ''; $item_spec = $row['item_spec'] ?? ''; $item_bending = $row['item_bending'] ?? ''; $model_UA = $row['model_UA'] ?? ''; $imgdata = $row['imgdata'] ?? ''; $widthsum = $row['widthsum'] ?? ''; $summary = ''; // bending/write_form.php와 동일한 구조로 데이터 구성 $inputList = $row['inputList'] ?? []; $bendingrateList = $row['bendingrateList'] ?? []; $sumList = $row['sumList'] ?? []; $colorList = $row['colorList'] ?? []; $AList = $row['AList'] ?? []; $registration_date = $row['registration_date'] ?? ''; // 연신율계산 후 값 계산 (bending/write_form.php의 calculateSum 함수와 동일) $calcAfterList = []; $accumulated = 0; for ($i = 0; $i < count($inputList); $i++) { $inp = floatval($inputList[$i] ?? 0); $bend = floatval($bendingrateList[$i] ?? 0); $diff = $inp + $bend; // 입력값 + 연신율 $calcAfterList[] = $diff; $accumulated += $diff; $sumList[$i] = $accumulated; } $summary = htmlspecialchars(json_encode([ 'inputList' => $inputList, 'bendingrateList' => $bendingrateList, 'calcAfterList' => $calcAfterList, 'sumList' => $sumList, 'colorList' => $colorList, 'AList' => $AList ], JSON_UNESCAPED_UNICODE), ENT_QUOTES, 'UTF-8'); echo ''; echo ''; echo ''; echo ''; echo '-'; echo '' . htmlspecialchars($registration_date, ENT_QUOTES, 'UTF-8') . ''; echo '' . htmlspecialchars($item_sep, ENT_QUOTES, 'UTF-8') . ''; echo '' . htmlspecialchars($model_UA, ENT_QUOTES, 'UTF-8') . ''; echo '' . htmlspecialchars($item_bending, ENT_QUOTES, 'UTF-8') . ''; echo '' . htmlspecialchars($itemName, ENT_QUOTES, 'UTF-8') . ''; echo '' . htmlspecialchars($item_spec, ENT_QUOTES, 'UTF-8') . ''; echo '' . htmlspecialchars($material, ENT_QUOTES, 'UTF-8') . ''; echo ''; if ($imgdata) { echo ''; } echo ''; // 합계 셀: data-summary 속성 추가 echo '' . htmlspecialchars($widthsum, ENT_QUOTES, 'UTF-8') . ''; echo ''; } } } ?>