고수님들, 전체 포인트 순 정렬 최신글 스킨인데, 이것좀 봐주십시오. ㅠ 정보
고수님들, 전체 포인트 순 정렬 최신글 스킨인데, 이것좀 봐주십시오. ㅠ
본문
안녕하세요. 고수님들,
그누보드 포인트 테이블에서
포인트를 각 아이디마다 sum 해서 그 순서로 정렬하고자 하는데,
다른건 하겟는데, mb_level 이 3보다 작은것만 어케 끌고오죠?
즉, g4_point 테이블에서만 끌고오는건 하겟는데, mb_level 은 g4_member 테이블이라, join이나 다른 mysql 명령어를 쓸거 깉은데, 그걸 모르겟어서요.
g4_member 에서 mb_point 를 쓰지않고 굳이 g4_point 에서 sum 을 하는 이유는 게시물 포인트만 쓰기 위함입니다. 가입포인트나 관리자가 준 포인트는 제외하고 쓰려는 거거든요
아래는 제가 해놓은 코드구요. 고견을 부탁드립니다. ㅠ
==========================================
<script type="text/javascript" src="<?=$g4['path']?>/js/common.js"></script>
<div id="latest_rank">
<table width=90% cellpadding=0 cellspacing=0 align="center">
<tr><td height=30><!--<a href="<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>">--><img src="<?=$g4[path]?>/home_images/trans.gif" border="0" style="width:100%;height:30px;"><!--</a>--></td></tr>
<?
$sql_new = "
SELECT
mb_id, SUM(po_point) as cnt
from $g4[point_table]
where po_rel_table<>'@member' and po_rel_table<>'@passive'
group by mb_id
order by cnt desc
limit 0,7 ";
//explain($sql);
$result_new = sql_query($sql_new);
for ($i=0; $row_new = sql_fetch_array($result_new); $i++) {
?>
<tr align=center style="BORDER-BOTTOM: lightgrey 1px dashed; OVERFLOW: hidden">
<td height="15" align="left"><img src="<?=$latest_skin_path?>/img/<?=$i+1?>.gif" width="12" height="11" align="absmiddle"></td>
<td height="20" align="left"><?=$row_new[mb_id]?> 님</td>
<td width="30" height="20"><?=$row_new[mb_level]?></td>
<td width="50" height="20" align="right"><?=$row_new[cnt]?> 점</td>
</tr>
<? } ?>
<? if (count($list) == 0) { ?><tr><td align=center height=50><font color=#6A6A6A>게시물이 없습니다.</a></td></tr><? } ?>
</table>
</div>
====================================
mb_level 부분을 어떻게 끌고와야 할까요?
left join 이런건가.. 음..
=======================================
두서없어서 다시 말씀드리면..
전체 포인트 테이블에서 sum 을 해서 그 순으로 정렬하되, mb_level 이 3 이하인 조건으로 끌고와야 한다는겁니다.
고견 부탁드릴게요.~ 고수님들 ㅠ
그누보드 포인트 테이블에서
포인트를 각 아이디마다 sum 해서 그 순서로 정렬하고자 하는데,
다른건 하겟는데, mb_level 이 3보다 작은것만 어케 끌고오죠?
즉, g4_point 테이블에서만 끌고오는건 하겟는데, mb_level 은 g4_member 테이블이라, join이나 다른 mysql 명령어를 쓸거 깉은데, 그걸 모르겟어서요.
g4_member 에서 mb_point 를 쓰지않고 굳이 g4_point 에서 sum 을 하는 이유는 게시물 포인트만 쓰기 위함입니다. 가입포인트나 관리자가 준 포인트는 제외하고 쓰려는 거거든요
아래는 제가 해놓은 코드구요. 고견을 부탁드립니다. ㅠ
==========================================
<script type="text/javascript" src="<?=$g4['path']?>/js/common.js"></script>
<div id="latest_rank">
<table width=90% cellpadding=0 cellspacing=0 align="center">
<tr><td height=30><!--<a href="<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>">--><img src="<?=$g4[path]?>/home_images/trans.gif" border="0" style="width:100%;height:30px;"><!--</a>--></td></tr>
<?
$sql_new = "
SELECT
mb_id, SUM(po_point) as cnt
from $g4[point_table]
where po_rel_table<>'@member' and po_rel_table<>'@passive'
group by mb_id
order by cnt desc
limit 0,7 ";
//explain($sql);
$result_new = sql_query($sql_new);
for ($i=0; $row_new = sql_fetch_array($result_new); $i++) {
?>
<tr align=center style="BORDER-BOTTOM: lightgrey 1px dashed; OVERFLOW: hidden">
<td height="15" align="left"><img src="<?=$latest_skin_path?>/img/<?=$i+1?>.gif" width="12" height="11" align="absmiddle"></td>
<td height="20" align="left"><?=$row_new[mb_id]?> 님</td>
<td width="30" height="20"><?=$row_new[mb_level]?></td>
<td width="50" height="20" align="right"><?=$row_new[cnt]?> 점</td>
</tr>
<? } ?>
<? if (count($list) == 0) { ?><tr><td align=center height=50><font color=#6A6A6A>게시물이 없습니다.</a></td></tr><? } ?>
</table>
</div>
====================================
mb_level 부분을 어떻게 끌고와야 할까요?
left join 이런건가.. 음..
=======================================
두서없어서 다시 말씀드리면..
전체 포인트 테이블에서 sum 을 해서 그 순으로 정렬하되, mb_level 이 3 이하인 조건으로 끌고와야 한다는겁니다.
고견 부탁드릴게요.~ 고수님들 ㅠ
댓글 전체

where문에
mb_id IN (select mb_id from `$g4[member_table]` where mb_level <= 3) as drv1
이런 조건문을 AND로 하나 추가해보세요.
mb_id IN (select mb_id from `$g4[member_table]` where mb_level <= 3) as drv1
이런 조건문을 AND로 하나 추가해보세요.

SELECT
mb_id, SUM(po_point) as cnt
from g4_point
where po_rel_table<>'@member' and po_rel_table<>'@passive'
and mb_id IN (select mb_id from `$g4[member_table]` where mb_level <= 3) as drv1
group by mb_id
order by cnt desc
limit 0,7;
이렇게요? 이리 하니 에러가 나던데.. 어케 해야 할까요? 음.. ㅠ.
쿼리에 넘 약해서리..
mb_id, SUM(po_point) as cnt
from g4_point
where po_rel_table<>'@member' and po_rel_table<>'@passive'
and mb_id IN (select mb_id from `$g4[member_table]` where mb_level <= 3) as drv1
group by mb_id
order by cnt desc
limit 0,7;
이렇게요? 이리 하니 에러가 나던데.. 어케 해야 할까요? 음.. ㅠ.
쿼리에 넘 약해서리..