for문 가로 2줄이나 3줄로 출력하려면 어떻게 해야하는지요?

for문 가로 2줄이나 3줄로 출력하려면 어떻게 해야하는지요?

QA

for문 가로 2줄이나 3줄로 출력하려면 어떻게 해야하는지요?

본문

현재 아래처럼 회원 랭킹을 출력하는데요.

한줄씩 나오거든요.

 

<table>
  <thead>
    <tr>
      <th>랭킹</th>
      <th>레벨아이콘+닉네임</th>
      <th>활동레벨 점수</th>
    </tr>
  </thead>
  <tbody>
    <?php
    $tmp = sql_query("SELECT * FROM {$g5['member_table']} WHERE mb_level < 10 ORDER BY mb_point+cast(mb_1 as unsigned) DESC LIMIT 100");
    for($key = 1; $row = sql_fetch_array($tmp); $key++){
    ?>
    <tr>
      <td class="key"><?php echo $key; ?></td>
      <td class="nick"><?php echo level_icon($row['mb_id'])?> <?php echo $row['mb_nick']; ?></td>
      <td class="point"><?php echo number_format($row['mb_1']+$row['mb_point']); ?>점</td>
    </tr>
    <?php } ?>
  </tbody>
</table>

 

이걸 가로로 2줄이나 3줄로출력하려면 어떻게 해야하는지요?

 

이 질문에 댓글 쓰기 :

답변 2

기본적으로 신비님 말처럼 하는게 더 쉬워요.

좀 더 덧붙이자면

세로폭의 변동때문에 원하는 모양이 안나올수도 있으니

<div style="width:calc(100%/3);  box-sizing:border-box; height:20px;">

방식으로 박스 높이를 주시면 더 좋아요.  box-sizing 도 유용하니 한번 찾아보세요.

 

그리고 질문대로 대답해버리면...


<table>
<?
$parts = 3; // 세덩어리씩 보여줄때
// $key 는 0 부터 시작하세요.
for(  $key = 0;  $row = sql_fetch_array($tmp);  $key++  )
{
    if( $key % $parts == 0 ) echo "<tr>";
    ?>
        <td class="key">키</td>
        <td class="nick">닉</td>
        <td class="point">포인트</td>
    <?
    if( $key % $parts == ($parts-1) ) echo "</tr>";
}
// 그리고 3의 배수로 딱 끝나지 않잖아요.
if( $key % $parts != ($parts-1) ) {
    echo str_repeat( "<td colspan='3'></td>", ( ( $parts - ($key % $parts) ) % $parts ) );
    echo "</tr>";
}
?>
</table>

입니다.

table 태그 대신 div 태그를 사용하시고, 

div에 float:left 속성 추가 후 너비를 50% (가로 2개) , 또는 33.33% (가로 3개) 주시면 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 59,591
QA 내용 검색

회원로그인

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