Files
sam-kd/bending/searchbending.php
hskwon aca1767eb9 초기 커밋: 5130 레거시 시스템
- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경
- DB 연결 하드코딩 → .env 기반으로 변경
- MySQL strict mode DATE 오류 수정
2025-12-10 20:14:31 +09:00

147 lines
5.0 KiB
PHP

<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");
$tablename = 'bending';
// Get search parameters from list.php style
$selectedName = $_REQUEST['selectedName'] ?? '';
$selectedItem = $_REQUEST['selectedItem'] ?? '';
$selectedUA = $_REQUEST['selectedUA'] ?? '';
$selectedBendingCategory = $_REQUEST['selectedBendingCategory'] ?? '';
$selectedMaterial = $_REQUEST['selectedMaterial'] ?? '';
$search = $_REQUEST['search'] ?? '';
// Build query conditions
$conditions = ["is_deleted IS NULL"];
$bindParams = [];
// Add selectedItem condition (대분류)
if (!empty($selectedItem)) {
$conditions[] = "item_sep = :selectedItem";
$bindParams[":selectedItem"] = $selectedItem;
}
// Add selectedUA condition (인정/비인정)
if (!empty($selectedUA)) {
$conditions[] = "model_UA = :selectedUA";
$bindParams[":selectedUA"] = $selectedUA;
}
// Add selectedBendingCategory condition (절곡물 분류)
if (!empty($selectedBendingCategory)) {
$conditions[] = "item_bending = :selectedBendingCategory";
$bindParams[":selectedBendingCategory"] = $selectedBendingCategory;
}
// Add selectedName condition (품명)
if (!empty($selectedName)) {
$conditions[] = "itemName = :selectedName";
$bindParams[":selectedName"] = $selectedName;
}
// Add selectedMaterial condition (재질)
if (!empty($selectedMaterial)) {
$conditions[] = "material = :selectedMaterial";
$bindParams[":selectedMaterial"] = $selectedMaterial;
}
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
$pdo = db_connect();
// Add search condition if provided (전체 컬럼 검색)
if (!empty($search)) {
$columns = [];
$stmt = $pdo->query("SHOW COLUMNS FROM {$DB}.{$tablename}");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$columns[] = $row['Field'];
}
// 각 컬럼에 대해 LIKE 검색 조건 추가
$searchConditions = [];
foreach ($columns as $index => $col) {
$paramName = ":search{$index}";
$searchConditions[] = "$col LIKE $paramName";
$bindParams[$paramName] = "%{$search}%";
}
if (!empty($searchConditions)) {
$conditions[] = "(" . implode(" OR ", $searchConditions) . ")";
}
}
// Build final SQL query
$sqlWhere = implode(" AND ", $conditions);
$sqlOrder = "ORDER BY num DESC";
$sql = "SELECT * FROM {$DB}.{$tablename} WHERE {$sqlWhere} {$sqlOrder}";
// Execute query
$stmh = $pdo->prepare($sql);
// Bind all parameters using bindValue
foreach ($bindParams as $key => $value) {
$stmh->bindValue($key, $value, PDO::PARAM_STR);
}
$stmh->execute();
// print($sql);
// Output results as HTML table rows
while ($row = $stmh->fetch(PDO::FETCH_ASSOC)) {
$num = $row['num'];
$item_sep = $row['item_sep']; // 대분류
$model_UA = $row['model_UA']; // 인정/비인정
$item_bending = $row['item_bending']; // 중분류
$itemName = $row['itemName'];
$item_spec = $row['item_spec'];
$material = $row['material'];
$widthsum = $row['widthsum'];
$memo = $row['memo'];
$imgdata = $row['imgdata'];
$upload_dir = '../bending/img/';
// Calculate bending count
$sumList = array_filter([
$row['sum1'], $row['sum2'], $row['sum3'],
$row['sum4'], $row['sum5'], $row['sum6']
], function($v) { return $v !== false; });
$bendingCount = count($sumList) > 0 ? (count($sumList) - 1) : 0;
// Calculate other counts like in list.php
$colorList = array_filter([
$row['color1'], $row['color2'], $row['color3'],
$row['color4'], $row['color5'], $row['color6']
], function($v) { return $v !== false; });
$AList = array_filter([
$row['A1'], $row['A2'], $row['A3'],
$row['A4'], $row['A5'], $row['A6']
], function($v) { return $v !== false; });
// Output row
echo "<tr>";
echo "<td class='text-center'>" . htmlspecialchars($item_sep) . "</td>";
echo "<td class='text-center'>" . htmlspecialchars($model_UA) . "</td>";
echo "<td class='text-center'>" . htmlspecialchars($item_bending) . "</td>";
echo "<td class='text-center'>" . htmlspecialchars($itemName) . "</td>";
echo "<td class='text-center'>" . htmlspecialchars($material) . "</td>";
echo "<td class='text-center'>" . htmlspecialchars($item_spec) . "</td>";
// 이미지(형상)
echo "<td class='text-center'>";
if (!empty($imgdata)) {
echo "<img src='{$upload_dir}" . htmlspecialchars($imgdata) . "' alt='형상 이미지' style='max-width:100px; max-height:50px; height:auto; width:auto;'>";
} else {
echo "<span class='text-secondary'>이미지 없음</span>";
}
echo "</td>";
echo "<td class='text-center'>" . $widthsum . "</td>";
echo "<td class='text-center'>" . $bendingCount . "</td>";
echo "<td class='text-center'>" . htmlspecialchars($memo) . "</td>";
echo "<td class='text-center'>";
echo "<button type='button' class='btn btn-primary btn-sm select-bending-item' data-num='" . $num . "'>";
echo "<i class='bi bi-check-lg'></i> 선택";
echo "</button>";
echo "</td>";
echo "</tr>";
}
?>