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

포인트 랭킹 중 1위만 뽑아오는 코드인데, 짧고 빠르게 수정 가능할까요? 채택완료

Winzr 7년 전 조회 2,075

</p>

<p>  <?php

   $point_sql = "SELECT DISTINCT t1.mb_id, t1.mb_point, t1.mb_nick, t1.mb_level, COUNT(t1.mb_id) AS ranking

   FROM {$g5['member_table']} t1, {$g5['member_table']} t2

   WHERE (t1.mb_point < t2.mb_point

   OR t1.mb_id = t2.mb_id) AND t1.mb_level < 9

   GROUP BY t1.mb_id

   ORDER BY ranking

   LIMIT 0 , 1";

   $point_que = sql_query($point_sql);

   while($point_row = sql_fetch_array($point_que)){

    $tmp_member = sql_fetch("select mb_id, mb_nick, mb_email, mb_homepage from {$g5['member_table']} where mb_id = '".$point_row['mb_id']."'");

   ?>

    <?php echo $point_row['mb_nick'] ?>님, <?=number_format($point_row['mb_point'])?> 포인트 보유 중.

  <? } ?></p>

<p>

 

사이드뷰는 사용하지 않습니다.

이 sql문과 반복문을 짧고 간략하게 코드 수정 가능할까요??

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

답변 3개

채택된 답변
+20 포인트
해피정
7년 전

이렇게 하면 되겠네요~~~~

님, 포인트 보유 중.

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

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

플래토
7년 전

그누보드의 기능이 변형되지 않은것이라면 

아주 간단하게 추출가능합니다.

sql문만 

</p>

<p>$sql = "select * from {$g5['member_table']}</p>

<p>          order by mb_point desc</p>

<p>          limit 1 " ;</p>

<p>

현재 존재하는 포인트의 잔액중 최고치를 역순으로 (가장 많은순) 뽑아서 

처음것 1개만 추출하는겁니다.

 

만약 1~10 을뽑으려면

limit 10 하시면 되겟죠

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

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

7년 전

1위만 뽑는건데 왜 조인을 하시는지 모르겠네요 그냥 포인트로 desc 하시면 되지 않나요? 잘못 이한건지 모르겠네요

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

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

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

로그인