테스트 사이트 - 개발 중인 베타 버전입니다

for문 관련 질문입니다. 채택완료

용미엘 4년 전 조회 1,558

아래 그림과 같이 순위 란에 for문을 사용해서 최대 15개까지의 정보만 표시게되도록 하고싶습니다.

정렬기준은 승점을 기준으로 정렬이 될 예정이고, 팀 순위가 변동되어도 순위의 1~15순서는 항상 고정되도록 하고싶습니다.. php초보라 머리속에서 상상은되는데 입력이 안되네요. 처리단에서 작업해야하는지, 뿌려주는부분에서 작업해야하는지 잘 모르겠습니다.

for문은 어떤식으로 작성하면 좋을지 힌트좀 부탁드리겠습니다.

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트

</p>

<pre>
<code><?php
                    $sql = "SELECT * FROM g5_record order by r_winP desc limit 15";
                    $result = $db->query($sql);
                    $i = 1;
                    while ($row = $result->fetch_assoc()) {  
                       //말씀해주신부분// 이곳에 for문을 작성하면 될까요?
                ?>
                <tr style="height:40px;">
                    <td><?php echo $i ?>위</td>
                    <td><?php echo $row['r_team'] ?></td>
                    <td><?php echo $row['r_match'] ?></td>
                    <td><?php echo $row['r_winP'] ?></td>
                    <td><?php echo $row['r_win'] ?></td>
                    <td><?php echo $row['r_draw'] ?></td>
                    <td><?php echo $row['r_defeat'] ?></td>
                    <td><?php echo $row['r_getP'] ?></td>
                    <td><?php echo $row['r_lossP'] ?></td>
                    <td><?php echo $row['r_diff'] ?></td>
                </tr>
                <?php
                     $i ++;
                    }
                ?></code></pre>

<p>

 

이렇게하시면 됩니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

용미엘
4년 전
선생님 정말 감사합니다. 하나 더 배웠습니다. 좋은하루되세요^^

댓글을 작성하려면 로그인이 필요합니다.

x
4년 전

위 댓글에 소스를 보니 이미 구현하신거 같은데요?

 

<tr>부분만 while문 밖으로 빼면 될거 같네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

용미엘
4년 전
댓글 감사드립니다.
db에서 불러는와지는데 순위란에 번호를 매겨주고싶어서요..ㅎ; 아직 제 지식으로 어렵네요;
x
x알카드x
4년 전
$row['r_rank'] 값이 랭킹의 숫자(1~15) 아닌가요?

혹시 맨 좌측 항목의 값이 0으로 나와서
1
2
3
4
...
14
15
이렇게 출력하길 원하시는걸까요?
용미엘
4년 전
네네 맞습니다 ㅎ 도움주셔서 감사드립니다.

댓글을 작성하려면 로그인이 필요합니다.

정렬기준은 승점을 기준으로 정렬이 될 예정이고,

팀 순위가 변동되어도 순위의 1~15순서는 항상 고정되도록 하고싶습니다.

===

어떤 상황인지 잘 이해가 안 가네요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

용미엘
4년 전
댓글 감사드립니다.
순위를 항상 1~15까지 보여주고 승점기준으로 정렬되도록 한다는 말을 제가 좀 복잡하게 썻네요 ㅎㅎ; 기준점이 승점이라는 내용입니다.

댓글을 작성하려면 로그인이 필요합니다.

4년 전

처리부에서 정렬기준으로 db에서 쿼리를 통해 15개 가져와서 ,

출력부분에서 fetch 해서 사용해도 되고, 

처리부에서 배열로 만들어서 출력부분에서 반복문으로 출력만 해도 될것같습니다

 

만약 포인트 높은순으로 회원정보 가져온다 치면

$sql = "select * from g5_member order by mb_point desc limit 15;";

$result = sql_query($sql);
while ($row = sql_fetch($result)) {

    //여기서 출력 or 여기서 배열에 저장하고 따로 출력 

}

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

용미엘
4년 전
감사합니다.
아래는 현재코드입니다.
[code]
<?php
$sql = "SELECT * FROM g5_record order by r_winP desc limit 15";
$result = $db->query($sql);
while ($row = $result->fetch_assoc()) {
//말씀해주신부분// 이곳에 for문을 작성하면 될까요?
?>
<tr style="height:40px;">
<td><?php echo $row['r_rank'] ?></td>
<td><?php echo $row['r_team'] ?></td>
<td><?php echo $row['r_match'] ?></td>
<td><?php echo $row['r_winP'] ?></td>
<td><?php echo $row['r_win'] ?></td>
<td><?php echo $row['r_draw'] ?></td>
<td><?php echo $row['r_defeat'] ?></td>
<td><?php echo $row['r_getP'] ?></td>
<td><?php echo $row['r_lossP'] ?></td>
<td><?php echo $row['r_diff'] ?></td>
</tr>
<?php
}
?>
[/code]
폭주죽
4년 전
위에 코드로 했을떄 정상적으로 동작 안하나요? 잘 하신거같은데 ㅎㅎ 이미 while 문으로 반복문 돌아가고 있으니까요 ㅎㅎ
용미엘
4년 전
아..ㅎㅎ 근데 순위쪽에 자동으로 1~15번까지 뿌려주고싶어서요.. 그 방법을 잘 모르겠습니다 ㅎ;;
지금건 DB에서 15개만 불러오는거라 순위에 숫자가 다 0입니다..ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인