순위 5위까지만 나타나게 할 수 없을까요? 닉네임도 별표표시

순위 5위까지만 나타나게 할 수 없을까요? 닉네임도 별표표시

QA

순위 5위까지만 나타나게 할 수 없을까요? 닉네임도 별표표시

답변 3

본문

출석부 소스 내용입니다.

현재는 출석 하는 모두가 리스트 순위에 나타나는데

5등까지만 리스트에 출력하고, 순위에 포함된 닉네임들을 앞글자를 제외한 나머지를 별표로 처리 하고 싶은데 이방법 저방법 동원해도 도저히 안되네요.

도움좀 부탁 드려요.

 

<?php
// 출석 테이블 연결
$sql = " select * from $g5[attendance_table] where $sql_common order by datetime asc, day desc ";
$result = sql_query($sql);
for ($i=0; $data=sql_fetch_array($result); $i++) {

    // 접속자테이블 연결
    $sql = " select mb_id from $g5[login_table] where mb_id = '$data[mb_id]' ";
    $ing = sql_fetch($sql);

    // 접속상태
    if ($ing['mb_id']) {

        $on = "접속중";

    } else {

        $on = "미접속";

    }

    // 회원 테이블 연결
    $check = get_member($data['mb_id']);

    // 닉네임
    $name = get_sideview($check['mb_id'], $check['mb_nick'], $check['mb_email'], $check['mb_homepage']);

    // 랭킹
    $rank = $i + 1;

    $list = $i%2 ? 0 : 1;
     
?>
<tr height="30" class="bg<?php echo $list?>">
    <td align="center"><?php echo $rank?> 등</td>
    <td align="center"><?php echo substr($data['datetime'],10,16);?></td>
    <td align="center"><?php echo $name?></td>
    <td style="padding:0 0 0 20px;"><?php echo get_text($data['subject'])?></td>
    <td align="center"><?php echo $on?></td>
    <td align="right" style="padding:0 5 0 0px;"><?php echo number_format($data['point']);?> 점</td>
    <td align="center"><?php echo $data['day']?> 일째</td>
</tr>
<tr><td bgcolor="#EEEEEE" colspan="<?php echo $colspan?>" height="1"></td></tr>
<?php } ?>
<?php if (!$i) { ?>
<tr><td height="100" colspan="<?php echo $colspan?>" align="center">출석한 사람이 없습니다.<br><br>출석시간 : <?php echo date("A H시 i분 s초", strtotime($attendance['start_time']))?> ~ <?php echo date("A H시 i분 s초", strtotime($attendance['end_time']))?></td></tr>
<tr><td colspan="<?php echo $colspan?>" height="1" bgcolor="#eeeeee"></td></tr>
<?php } ?>
</table></td>
</tr>
<tr><td height="30"></td></tr>
</table>

이 질문에 댓글 쓰기 :

답변 3

5위까지.. 뒤에 limit 5 추가됨.

$sql = " select * from $g5[attendance_table] where $sql_common order by datetime asc, day desc limit 5 ";

 

별표처리..

<?php echo $name?> 여기를 이렇게 수정.

<?php echo preg_replace('/(?<=.{1})./u','*',$name); ?>

리스트 5위까지 하려면 쿼리 뒷 부분에 limit 5로 적용해 주시면 5개만 나옵니다.

limit 을 하시거나 for문 안에 조건문을 넣으셔서 5위까지만 나오게 하시는방법이 있는데 limit을 추천드립니다.

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