표제작 관련 mysql구문 질문입니다..
본문
안녕하세요?
조직도를 좀 만들어보고 있습니다.
어찌어찌 해서 표를 만들어 db를 불러와 내용을 채우는데는 성공하였는데요, 다만 같은부서를 rowspan을 사용해서 하나로 묶고싶은데 잘 구현이 안되네요 ㅎ;;
표1 |
|
표2 |
||
경영지원팀 |
홍길동1 |
|
경영지원팀 |
홍길동1 |
경영지원팀 |
홍길동2 |
|
홍길동2 |
|
경영지원팀 |
홍길동3 |
|
홍길동3 |
|
경영지원팀 |
홍길동4 |
|
홍길동4 |
|
경영지원팀 |
홍길동5 |
|
홍길동5 |
현재는 표1 처럼 만들어져있구요, 표2처럼 만들고자 이것저것 시도해보는중입니다.
부서별로 2~3개정도의 팀이 있는데요, mysql 구문으로 구현이 가능할까요? 아니면 다른방법이 있다면 추천부탁드립니다..
<ul class="tabNav_tab tabnav">
<!--부서 카테고리(s)-->
<?php
$sql = "select * from g5_or_master where or_id order by or_id asc";
$result = sql_query($sql);
$row = sql_num_rows($result);
for ($i = 1; $row = sql_fetch_array($result); $i++){
?>
<li><a href="#tab0<?=$i?>" class="active"><?php echo $row['or_subject'] ?></a></li>
<?php } ?>
<!--부서 카테고리(e)-->
</ul>
<div class="tabcontent">
<!--부서별 그룹화(s)-->
<?php
$sql = "select gr_id from g5_or_detail group by gr_id";
$result = sql_query($sql);
$row = sql_num_rows($result);
for ($i = 1; $row = sql_fetch_array($result); $i++){
?>
<div id="tab0<?=$i?>">
<div class="table-box">
<table class="table--min">
<tr>
<th class="belong line_no_left">소속</th>
<th class="spot">직위</th>
<th class="name">직원명</th>
<th class="tel">전화번호</th>
<th class="job">담당업무</th>
<th class="mail line_no_right">이메일</th>
</tr>
<!--부서인원정보(s)-->
<?php
$sql_or = "SELECT * FROM g5_or_detail where gr_id = $i order by or_order asc";
$result_or = sql_query($sql_or);
for ($j=1; $row_or = sql_fetch_array($result_or); $j++){
?>
<tr>
<td rowspan="" class="belong line_no_left"><?php echo $row_or['or_belong'] ?></td>
<td class="spot align_c"><?php echo $row_or['or_spot'] ?></td>
<td class="name align_c"><?php echo $row_or['or_name'] ?></td>
<td class="tel align_c"><?php echo $row_or['or_tel'] ?></td>
<td class="job"><?php echo $row_or['or_job'] ?></td>
<td class="mail line_no_right"><?php echo $row_or['or_email'] ?></td>
</tr>
<?php } ?>
<!--부서인원정보(e)-->
</table>
</div>
</div>
<?php } ?>
<!--부서별 그룹화(e)-->
</div>
</div>
현재 코드입니다.
<td rowspan=""class="belong line_no_left"><?php echo $row_or['or_belong'] ?></td>
rowspan 부분에 group by 등을 사용해서 수를 넣어주고싶은데 어렵네요;
조언 부탁드립니다.
!-->답변 3
php에서 loop 돌면서 하는 것은 좀 복잡해서
https://stackoverflow.com/questions/46344928/how-to-merge-cells-with-equal-values
자바스크립트로 하는 방법입니다.
$sql_or = "SELECT * FROM g5_or_detail where gr_id = $i order by or_order asc";
$result_or = sql_query($sql_or);
$rowspan = sql_fetch(" select count(*) as cnt from g5_or_detail where gr_id = $i
");
<td rowspan="<?php echo $rowspan['cnt']?> "class="belong line_no_left">
이렇게 하시면 되지 않을까요?