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

기간별 베스트 맴버 채택완료

김마린2 3년 전 조회 1,104

안녕하세요

커뮤니티에 주간 베스트맴버 3명을 뽑고(포인트 획득순)

1~3위까지 별 닉네임옆에 마크를달아주고싶은데요

 

혹시좋은방안있을까요;-;

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

답변 2개

채택된 답변
+20 포인트
Dessi
3년 전

</p>

<p>/* 1주일 구하기 (전주 월 ~ 일) */

$today = time();

$week = date("w");</p>

<p>$week_first = $today-($week*86400);

$week_last = $week_first+(6*86400);</p>

<p>$start_date = date("Y-m-d",$week_first-(86400*6))." 00:00:00";

$end_date = date("Y-m-d",$week_last-(86400*6))." 23:59:59";</p>

<p>

/* 1주일 기간내에 포인트 합계 3위까지 구하기 */

$sql = "SELECT `mb_id`, sum(po_point)  FROM `g5_point` WHERE `po_datetime` >= '".$start_date."' AND `po_datetime` <= '".$end_date."' GROUP BY `mb_id`  ORDER by sum(po_point) DESC limit 3";

$result = sql_query($sql);</p>

<p> </p>

<p>/* 3위까지 배열에 담기 */

$week_rank= array();

while($row=sql_fetch_array($result)) {

  $week_rank[] = $row['mb_id'];

}

 </p>

<p>

 

예를 들어서 게시판 목록에 표시한다고 하시면

 

해당 게시판 스킨 list.skin.php 상단에 저렇게 하시고

 

해당 게시판 이름을 $list[$i]['name'] 표시한다면
 

  for ($i=0; $i<count($list); $i++) { 다음에

 

 

</p>

<p>if($list[$i]['mb_id'] == $week_rank[0]){ //1등

    $list[$i]['name'] = $list[$i]['name']."(1등)";

}else if($list[$i]['mb_id'] == $week_rank[1]){ //2등

    $list[$i]['name'] = $list[$i]['name']."(2등)";

}else if($list[$i]['mb_id'] == $week_rank[2]){ //3등

    $list[$i]['name'] = $list[$i]['name']."(3등)";

}</p>

<p>

 

해보세요.

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

답변에 대한 댓글 2개

김마린2
3년 전
감사합니다 잘 되는거 같습니다
여기서 admin, 같은 관리자 계정은 제외해줘야될거 같은데 어떻게하면될까요?
D
Dessi
3년 전
$sql = "SELECT `mb_id`, sum(po_point) FROM `g5_point` WHERE `mb_id` <> 'admin' AND `po_datetime` >= '".$start_date."' AND `po_datetime` <= '".$end_date."' GROUP BY `mb_id` ORDER by sum(po_point) DESC limit 3";

`mb_id` <> 'admin' AND

를 추가해주시면 됩니다.

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

주간 포인트 획득 합계를 저장하는 컬럼을 하나 만드시는 것이 좋을 듯합니다.

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

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

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

로그인