티스토리 뷰

반응형

프로그램을 개발하다보면 여러 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>

 

 

결과물은 이렇게 만들었다....

엄청난 시간을 투자해서 만든화면이라 보람은 있다~

코딩은 계속되어야 한다.

반응형
댓글