포인트 랭킹 중 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개
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 하시면 되겟죠
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인