5) { sleep(1); header("Location:" . $WebSite . "login/login_form.php"); exit; } include $_SERVER['DOCUMENT_ROOT'] . '/load_header.php'; $title_message = '절곡품 (가이드레일)'; ?> <?=$title_message?> query($columnSql); $columns = $columnQuery->fetchAll(PDO::FETCH_COLUMN); // 검색어 필터 if (!empty($search)) { // 공백 제거(원한다면 제거하지 않아도 됨) $searchTrimmed = str_replace(' ', '', $search); $searchConditions = []; foreach ($columns as $i => $col) { // 컬럼마다 고유 파라미터 이름(:search0, :search1 등)을 생성 $paramName = ":search{$i}"; $searchConditions[] = "$col LIKE $paramName"; $bindParams[$paramName] = "%{$searchTrimmed}%"; } if (!empty($searchConditions)) { // 여러 컬럼 중 하나라도 일치하면 OR로 연결 $conditions[] = "(" . implode(" OR ", $searchConditions) . ")"; } } // 최종 SQL 구성 $sql = "SELECT * FROM {$DB}.{$tablename}"; if (!empty($conditions)) { $sql .= " WHERE " . implode(" AND ", $conditions); } $sql .= $orderby; // 디버그용 출력 (필요시) // echo $sql; // print_r($bindParams); try { $stmt = $pdo->prepare($sql); // bindValue를 직접 루프로 돌려 1:1 매칭을 명확히 해도 되고, 아래처럼 바로 execute에 배열을 전달해도 됩니다. $stmt->execute($bindParams); $total_row = $stmt->rowCount(); ?>
확대된 이미지
확대된 이미지
 
'; echo ''; foreach ($item_list as $item) { $checked = ($selected_item === $item) ? ' checked' : ''; echo ''; echo ''; } ?>
'; echo ''; foreach ($UA_list as $item) { $checked = ($selected_UA === $item) ? ' checked' : ''; echo ''; echo ''; } ?>
       
$value) { if (empty($item[$key]) || $item[$key] !== $value) { $matched = false; break; } } if ($matched && !empty($item['image'])) { return "이미지"; } } return ''; } $start_num = $total_row; while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { include '_row.php'; // guiderail.json 파일 읽기 $jsonFile = $_SERVER['DOCUMENT_ROOT'].'/guiderail/guiderail.json'; $imgUrl = ''; if (file_exists($jsonFile)) { $jsonData = file_get_contents($jsonFile); $guiderailImages = json_decode($jsonData, true); if (is_array($guiderailImages)) { // 검색 조건 우선순위대로 정렬 $searchCases = []; // 1순위: 검색 키워드 (가장 우선) if (!empty($row['search_keyword'])) { $searchCases[] = ['search_keyword' => $row['search_keyword']]; } // 2순위: 모든 조건 일치 $searchCases[] = [ 'model_name' => $row['model_name'], 'check_type' => $row['check_type'], 'finishing_type' => $row['finishing_type'], 'firstitem' => $row['firstitem'], 'UA' => $row['model_UA'] ]; // 3순위: 모델명 + 형태 + 마감 $searchCases[] = [ 'model_name' => $row['model_name'], 'check_type' => $row['check_type'], 'finishing_type' => $row['finishing_type'] ]; // 4순위: 모델명 + 형태 $searchCases[] = [ 'model_name' => $row['model_name'], 'check_type' => $row['check_type'] ]; // 5순위: 모델명만 $searchCases[] = ['model_name' => $row['model_name']]; // 순차 검색 - 첫번째 매칭되는 이미지 사용 foreach ($searchCases as $case) { $imgUrl = findImageByConditions($guiderailImages, $case); if ($imgUrl) break; } } } ?> getMessage(); } ?>
번호 등록일 대분류 인정/비인정 제품코드 품목검색어 가로(너비) X 세로(폭) 형상 마감 소요자재량 형태 작업지시서 작성 비고
X $total) { $summary_items[] = $material . '(' . number_format($total) . ')'; } $material_summary_display = implode('
', $summary_items); } } catch (Exception $e) { $material_summary_display = '데이터 오류'; } } echo $material_summary_display ?: '-'; ?>
보기
이미지 편집기
20px