포인트 랭킹 중 1위만 뽑아오는 코드인데, 짧고 빠르게 수정 가능할까요?
본문
<?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'])?> 포인트 보유 중.
<? } ?>
사이드뷰는 사용하지 않습니다.
이 sql문과 반복문을 짧고 간략하게 코드 수정 가능할까요??
!-->답변 3
이렇게 하면 되겠네요~~~~
<?php
$point_sql = "select mb_id, mb_nick from {$g5['member_table']} where mb_level < 9 order by mb_point desc limit 1 " ;
$point_row = sql_fetch($point_sql);
echo $point_row['mb_nick'] ?>님, <?php echo number_format($point_row['mb_point'])?> 포인트 보유 중.
1위만 뽑는건데 왜 조인을 하시는지 모르겠네요 그냥 포인트로 desc 하시면 되지 않나요? 잘못 이한건지 모르겠네요
그누보드의 기능이 변형되지 않은것이라면
아주 간단하게 추출가능합니다.
sql문만
$sql = "select * from {$g5['member_table']}
order by mb_point desc
limit 1 " ;
현재 존재하는 포인트의 잔액중 최고치를 역순으로 (가장 많은순) 뽑아서
처음것 1개만 추출하는겁니다.
만약 1~10 을뽑으려면
limit 10 하시면 되겟죠
!-->
답변을 작성하시기 전에 로그인 해주세요.