Warning: Undefined array key "mobile_dir" in /home/kagla/new-sir/old/common.php on line 315
for문 가로 2줄이나 3줄로 출력하려면 어떻게 해야하는지요?

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

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

QA

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

답변 2

본문

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

한줄씩 나오거든요.

 

<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개) 주시면 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,406
© SIRSOFT
현재 페이지 제일 처음으로