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