프로그램을 개발하다보면 여러 cutomized code를 작성해야 하는데,
난관들이 너무 많다.
작업공정에서 '레이져1030,3030'의 공정이 있는 데이터 중에서 '레이져_0'인 데이터를 추출하는 코드를 짜보았다.
$sql = "SELECT * FROM (여러분의 DB테이블) WHERE work_process = :work_process"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':work_process', $row['work_process'], PDO::PARAM_STR); $stmt->execute();
위의 코드에서 'work_process'의 내용중에 '레이져1030', '레이져3030'의 내용이 존재하고, work_done의 컬럼값이 work_done ='설계_0,레이져3030_0,설계_1,레이져3030_1,설계_2,레이져3030_2,설계_3,레이져3030_3'; 인 경우라고 가정하면, '설계_0'은 첫번째 자료의 설계가 완성된 상태를 나타내는데, 해당 공정 '레이져1030_' 또는 '레이져3030_'이 존재하지 않으면 작업을 해야하는 레코드로 분류해서 테이블에 표시하고 싶은데 테이블은 위와 같이 3개의 행으로 나뉘는 것으로 코드를 짜보겠습니다.
<div class="card">
<div class="card-content" >
<div class="card-body">
<?php
$place = array();
array_push($place, "레이져(3030,1030)", "절곡(1,2)", "서브(탭,센딩,쇼트,버링,가람)", "용접", "도장", "기타(물류,외주)" );
$count = 0;
echo '<div class="container">';
echo '<div class="row">';
foreach ($place as $placearr) {
if ($count % 3 == 0 && $count != 0) {
echo '</div><div class="row">';
}
?>
<div class="col-md-4">
<table class="table table-bordered">
<thead>
<tr>
<span style="font-size: 20px; color:brown; "><?php echo $placearr; ?></span>
</tr>
<tr>
<th scope="col" style="font-size: 15px;"> 납기</th>
<th scope="col" style="font-size: 15px;"> 코드</th>
<th scope="col" style="font-size: 15px;"> 품명</th>
<th scope="col" style="font-size: 15px;"> 수량</th>
</tr>
</thead>
<tbody>
<?php
// Modify the SQL query to fetch data for the current work_process value
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
$pdo = db_connect();
switch ($placearr)
{
case '레이져(3030,1030)' :
$sql = "SELECT * FROM dbeunsungbiz.workdb WHERE (work_process LIKE '%레이져1030%' OR work_process LIKE '%레이져3030%') AND work_done NOT LIKE '%레이져%'";
break;
case '절곡(1,2)' :
$sql = "SELECT * FROM dbeunsungbiz.workdb WHERE (work_process LIKE '%절곡%' ) AND work_done NOT LIKE '%절곡%'";
break;
case '서브(탭,센딩,쇼트,버링,가람)' :
$sql = "SELECT * FROM dbeunsungbiz.workdb WHERE (work_process LIKE '%탭%' or work_process LIKE '%센딩%' or work_process LIKE '%쇼트%' or work_process LIKE '%버링%' or work_process LIKE '%가람%' ) AND (work_done NOT LIKE '%탭%' AND work_done NOT LIKE '%센딩%' AND work_done NOT LIKE '%쇼트%' AND work_done NOT LIKE '%버링%' AND work_done NOT LIKE '%가람%' ) ";
break;
case '용접' :
$sql = "SELECT * FROM dbeunsungbiz.workdb WHERE (work_process LIKE '%용접%' ) AND work_done NOT LIKE '%용접%'";
break;
case '도장' :
$sql = "SELECT * FROM dbeunsungbiz.workdb WHERE (work_process LIKE '%도장%' ) AND work_done NOT LIKE '%도장%'";
break;
case '기타(물류,외주)' :
$sql = "SELECT * FROM dbeunsungbiz.workdb WHERE (work_process LIKE '%물류%' or work_process LIKE '%외주%' ) AND (work_done NOT LIKE '%물류%' AND work_done NOT LIKE '%외주%' ) ";
break;
}
$stmt = $pdo->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
// var_dump($result);
foreach ($result as $row) {
// var_dump($row);
// 품목코드, 품목명 추출
$sql = "SELECT * FROM dbeunsungbiz.workgrid WHERE work_parentKey = :num";
$stmtsub = $pdo->prepare($sql);
$stmtsub->bindParam(':num', $row['num'], PDO::PARAM_INT);
$stmtsub->execute();
$datasub = $stmtsub->fetch(PDO::FETCH_ASSOC);
// Add table rows based on the data from the database
echo '<tr>';
echo '<td style="font-size:9px;">' . htmlspecialchars($row['work_TIME_DATE']) . '</td>';
echo '<td style="font-size:9px;">' . htmlspecialchars($datasub['work_prod_cd']) . '</td>';
echo '<td style="font-size:9px;">' . htmlspecialchars($datasub['work_prod_des']) . '</td>';
echo '<td style="font-size:9px;">' . htmlspecialchars($datasub['work_qty']) . '</td>';
echo '</tr>';
}
?>
</tbody>
</table>
</div>
<?php
$count++;
}
?>
</div>
</div>
</div>
결과물은 이렇게 만들었다....
엄청난 시간을 투자해서 만든화면이라 보람은 있다~
코딩은 계속되어야 한다.
반응형
'IT tech Coding > php' 카테고리의 다른 글
[php] php echo문에 `(백틱) 문자 사용가능? (0) | 2023.05.14 |
---|---|
[php] 작업공정을 만드는데, 각 공정마다 입고/출고/상태 정보를 담고 싶을때 만들어 보는 코드 (0) | 2023.05.09 |
선택에 따라 progressbar 자유자재로 활용해서 화면 꾸며보기 (0) | 2023.04.21 |
PHP 업무용 레이져기계 작업공정도 제작(javascript 활용) (1) | 2023.04.15 |
php와 자바스크립트를 이용해서 checkbox 여러개를 체크하고 해제하고 하는 것을 배열에 저장해서 서버에 저장하는 코드 (0) | 2023.04.12 |