여러개의 행 한줄로 가져오기

여러개의 행 한줄로 가져오기

QA

여러개의 행 한줄로 가져오기

본문

2039449303_1744007980.7687.jpg

 

이렇게 나오는 것을

 

2039449303_1744008008.6212.jpg

 

이렇게 나오게 하고 싶습니다

 

very_work_list1  테이블에 이름별로 7개의 행이 있습니다.

그래서 위와 같이 7줄로 나옵니다

이름별로 한줄로 나오게 하고 싶습니다

 

그룹으로 묶어도

이름은 적용이돼서 한줄로 나오는데...

출퇴근 시간은 그대로 7줄로 나옵니다 ㅠㅠ

 

아래는 해당 소스입니다

 


<?php 
    if($gr) $sql_c = " where work_group = '$gr' ";
    $sql = "select * from very_work_list1 $sql_c ";
    $result = sql_query($sql);
    for($z=0; $row=sql_fetch_array($result); $z++){?>
        <tr>
        <td class="text-center bg-hover-success-o-10">
            <a href="<?php echo $workurl;?>/_set.php?vw=chk&id=<?php echo $row['id'];?>">
                <?php echo $row['work_name'];?>
            </a>
        </td>
        <?php for ($n = 1, $i = 0; $i < $td; $i++): 
        $todaysd = strtotime($mlist.'-'.$n);
        $todaysd = date('Y-m-d',$todaysd);
        $n++;
        ?> 
        <td class="text-center bg-hover-primary-o-2 font-size-xxs">
            <?php echo timechk($row['id'], 'work_intime', $todaysd);?>
        </td> 
        <td class="text-center bg-hover-danger-o-2 font-size-xxs">
            <?php echo timechk($row['id'], 'work_outtime', $todaysd);?>
        </td> 
        <?php endfor; ?> 
    </tr>

 

 

 

 

이 질문에 댓글 쓰기 :

답변 3


<?php
    if($gr) $sql_c = " where work_group = '$gr' ";
    $sql = "select * from very_work_list $sql_c ";
    $result = sql_query($sql);
    for($z=0; $row=sql_fetch_array($result); $z++){
        if($row['work_name'] != $work_name) {
?>
        <tr>
        <td class="text-center bg-hover-success-o-10">
            <a href="<?php echo $workurl;?>/_set.php?vw=chk&id=<?php echo $row['id'];?>">
                <?php echo $row['work_name'];?>
            </a>
        </td>
<?php   } ?>
        <?php for ($n = 1, $i = 0; $i < $td; $i++):
        $todaysd = strtotime($mlist.'-'.$n);
        $todaysd = date('Y-m-d',$todaysd);
        $n++;
        ?>
        <td class="text-center bg-hover-primary-o-2 font-size-xxs">
            <?php echo timechk($row['id'], 'work_intime', $todaysd);?>
        </td>
        <td class="text-center bg-hover-danger-o-2 font-size-xxs">
            <?php echo timechk($row['id'], 'work_outtime', $todaysd);?>
        </td>
        <?php endfor; ?>
    <?php  if($row['work_name'] != $work_name) { ?>
    </tr>
    <?php   } ?>
<?php $work_name = $row['work_name']; ?>

이름이 여러줄로 되어 있어서 그런듯 한데 group by 이름명 을 하게해서 먼저 표기후에
그에 따라 해당 일자별로 가져오도록 처리해 주면 원하는 형태가 되지 않을까 싶긴 한데
현재 DB 컬럼 구주는 확인이 되지 않아 정확한 말씀이 어렵긴 하지만 일단 중복이름을 제거해서 처리해 주는게 좋지 않을까 싶습니다.

group by 로 이름명은 합쳐 지는데...
시간을 한줄로 못가져 옵니다 ㅠㅠ

해당일자별로 가져오게 하는게.. 개념이 잘 ㅠㅠ

체크시간으로 시간 저장을 하는게 아니라..
고정된 시간으로 체크를 해야해서..
이름을 여러줄로 할수 밖에 없는 상황입니다 ㅠㅠ


<?php
    if($gr) $sql_c = " where work_group = '$gr' ";
    $sql = "select * from very_work_list $sql_c ";
    $result = sql_query($sql);
    for($z=0; $row=sql_fetch_array($result); $z++){
        if($row['work_name'] != $work_name) {
?>
    <?php  if($work_name) { ?>
        </tr>
    <?php   } ?>
        <tr>
        <td class="text-center bg-hover-success-o-10">
            <a href="<?php echo $workurl;?>/_set.php?vw=chk&id=<?php echo $row['id'];?>">
                <?php echo $row['work_name'];?>
            </a>
        </td>
<?php   } ?>
        <?php for ($n = 1, $i = 0; $i < $td; $i++):
        $todaysd = strtotime($mlist.'-'.$n);
        $todaysd = date('Y-m-d',$todaysd);
        $n++;
        ?>
        <td class="text-center bg-hover-primary-o-2 font-size-xxs">
            <?php echo timechk($row['id'], 'work_intime', $todaysd);?>
        </td>
        <td class="text-center bg-hover-danger-o-2 font-size-xxs">
            <?php echo timechk($row['id'], 'work_outtime', $todaysd);?>
        </td>
        <?php endfor; ?>
<?php $work_name = $row['work_name']; ?>

매번 감사합니다..
이번에는 
http://sun76841.dothome.co.kr/33333.jpg    이렇게 나옵니다..

혹시나하여..
work_intime,  work_outtime  필드는 very_work_time 테이블에 있는 컬럼값입니다.
그것때문에 그럴지도 모르겠습니다 ㅠㅠ
전체소스를 올려 드릴께요 한번 봐주세요

very_work_list 에 등록되어 있는내용을 토대로
출퇴근 체크 할때
very_work_time 에 출근, 퇴근 시간이 기록이 됩니다.


---------------------------------------------------
<?php
function timechk($work_id, $type,$days){
$sql_c = " and work_intime LIKE '%".$days."%'  ";
$sql = "select * from very_work_time where work_id = '$work_id' $sql_c ";
$rowd = sql_fetch($sql);
$timed = '';
if($rowd[$type]){
$timed = date('H:i',strtotime($rowd[$type]));
}
if($type=='work_outtime'){
if($rowd['work_intime'] && !$rowd['work_outtime']) $timed = '<b class="label label-danger label-sm">X</b>';
}

return $timed;
}

function freeyymm($flag, $yymm){
 if(!$yymm) return date("Y-m");
 return date("Y-m",strtotime($flag, strtotime($yymm."-01")));
}

$date = "$mlist"; // 현재 날짜
$time = strtotime($date); // 현재 날짜의 타임스탬프
$sw = date('w', $time); // 1. 시작 요일
$sww = date('w', $time); // 1. 시작 요일
$td = date('t', $time); // 2. 현재 달의 총 날짜
$tw = ceil(($td + $sw) / 7);  // 3. 현재 달의 총 주차
$week = array('일','월','화','수','목','금','토');

$nm = $workurl.'/_set.php?vw='.$vw.'&mlist='.freeyymm("+1 month", $mlist).'&gr='.$gr;
$pm = $workurl.'/_set.php?vw='.$vw.'&mlist='.freeyymm("-1 month", $mlist).'&gr='.$gr;

$mtitle = date('Y년 m월', strtotime($mlist));
?>
<?php
$sql = "select * from very_work";
$row = sql_fetch($sql);
?>
<?php if($row['work_group']){
$work_group =explode('|' , $row['work_group']);
?>


<?php }?>



<div class="w-100 table-responsive ">
<table class="tabel table-bordered  table-vertical-center    ">
<tr class="bg-light border border-bottom border-top border-dark border-2">
<td class="text-center" style="min-width: 50px">
요일
</td>
<?php for ($n = 1, $i = 0; $i < $td; $i++):
if ( $sw==0 ) { // 일요일
$class = 'bg-danger-o-50';
} else if ( $sw==6 ) { // 토요일
$class = 'bg-primary-o-50';
} else { // 평일
$class = 'weekday';
}
?>
<td class="text-center <?php echo $class;?>" colspan="2">
<?php echo $week[$sw];
$sw=($sw+1)%7;
?>
</td>
<?php endfor; ?>
</tr>
<tr>
<td class="text-center">
날짜
</td>
<?php for ($n = 1, $i = 0; $i < $td; $i++):
if ( $sww==0 ) { // 일요일
$class = 'text-danger';
} else if ( $sww==6 ) { // 토요일
$class = 'text-primary';
} else { // 평일
$class = 'weekday';
}
$todays = strtotime($mlist.'-'.$n);
$todays = date('m-d',$todays);
?>
<td class="text-center <?php echo $class;?>" colspan="2">
<?php
$ww = $week[$sww];
$sww=($sww+1)%7;
?>
<?php echo $n++ ?>
<?php //echo $todays;?>
</td>
<?php endfor; ?>
</tr>
<tr class="border-bottom border-dark border-2">
<td class="text-center">
구분
</td>
<?php for ($n = 1, $i = 0; $i < $td; $i++):
?>
<td class="text-center bg-primary text-white">

</td>
<td class="text-center bg-danger text-white">

</td>
<?php endfor; ?>
</tr>


<?php
    if($gr) $sql_c = " where work_group = '$gr' ";
    $sql = "select * from very_work_list1 $sql_c ";
    $result = sql_query($sql);
    for($z=0; $row=sql_fetch_array($result); $z++){
        if($row['work_name'] != $work_name) {
?>
    <?php  if($work_name) { ?>
        </tr>
    <?php  } ?>
        <tr>
        <td class="text-center bg-hover-success-o-10">
            <a href="<?php echo $workurl;?>/_set.php?vw=chk&id=<?php echo $row['id'];?>">
                <?php echo $row['work_name'];?>
            </a>
        </td>
<?php  } ?>
        <?php for ($n = 1, $i = 0; $i < $td; $i++):
        $todaysd = strtotime($mlist.'-'.$n);
        $todaysd = date('Y-m-d',$todaysd);
        $n++;
        ?>
        <td class="text-center bg-hover-primary-o-2 font-size-xxs">
            <?php echo timechk($row['id'], 'work_intime', $todaysd);?>
        </td>
        <td class="text-center bg-hover-danger-o-2 font-size-xxs">
            <?php echo timechk($row['id'], 'work_outtime', $todaysd);?>
        </td>
        <?php endfor; ?>
<?php $work_name = $row['work_name']; ?>
</tr>

<?php }?>
</table>
</div>

답변을 작성하시기 전에 로그인 해주세요.
전체 15,826
QA 내용 검색
filter #php ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT