포인트 순위를 만들고 있는 중입니다
순위가 공동일때 4위 5위 6위 이런식으로 나오던데
공동순위이면 4위 4위 4위 7위 이런식으로 하는 방법좀 알려주세요
Copy
<? $sql = " select count(*) as cnt from $g5[member_table]"; $row = sql_fetch($sql); $total_count = $row[cnt]; $rows = 10; $total_page = ceil($total_count / $rows); if ($page == "") { $page = 1; } $from_record = ($page - 1) * $rows; $mod = 48; $tbl_col =2 ; $tbl_col_sep = (int)($mod / $tbl_col) + ($mod % $tbl_col) ; if($_GET[keyword]!="") { if($_GET[type]==0) { $keyword_yi="where mb_nick='$_GET[keyword]'"; } } $sql = " select * from $g5[member_table] where mb_id not in ('admin') $keyword_yi order by mb_point desc, mb_today_login desc limit $from_record, $rows "; $sql11 = " select count(*) from $g5[member_table] $keyword_yi order by mb_point desc, mb_today_login desc "; $result = sql_query($sql); $result11 = sql_query($sql11); //echo $rsn11; $rsn11=mysql_fetch_array($result11); if($rsn11[0]==0) { if($_GET[type]==0) { $ty="닉네임"; } echo "<tr><td colspan=6 align=center height=150> 검색하신 $ty(<font color=red>$_GET[keyword]</font>) 에 대한 검색결과가 없습니다</td></tr>"; } $point_que = mysql_query($point_sql); for ($i=0; $row=sql_fetch_array($result); $i++) { $rank = (($page - 1) * $rows) + $i + 1; $point = number_format($row[mb_point]); $id = $row[mb_id]; ?> <tr> <th><?=$rank?></th> <th><?=$row[mb_name]?></th> <th><?=$point?> 점</th> </tr> <? } ?>
|
답변 1개 / 댓글 1개
채택된 답변
+20 포인트
2015-05-15 (금) 19:22:50
아랫부분을 이렇게 고쳐보세요.
테스트는 안해봤는데, 이런 개념으로 해보심 될거에요.
이전 값을 저장해뒀다가 비교하는 방식으로...
Copy
$point_que = mysql_query($point_sql); // 세션에 이전페이지에서 남은게 있으면 넣어준다.$prev_point = ($_SESSION['prev_point'] > 0) ? $_SESSION['prev_point'] : 0; // 이전포인트$prev_rank = ($_SESSION['prev_rank'] > 0) ? $_SESSION['prev_rank'] : 0; // 이전랭크 for ($i=0; $row=sql_fetch_array($result); $i++) { $rank = (($page - 1) * $rows) + $i + 1; $point = number_format($row[mb_point]); $id = $row[mb_id]; // 이전 포인트과 지금 포인트가 같으면 랭크를 이전 랭크로 대신함 if($prev_point == $point) $rank = $prev_rank; ?> <tr> <th><?=$rank?></th> <th><?=$row[mb_name]?></th> <th><?=$point?> 점</th> </tr> <? $prev_point = $point; // 이번회차 포인트는 저장해둠 $prev_rank = $rank; // 이번회차 랭크는 저장해둠}// 세션에 저장해 두었다가, 다음 페이지에서 처음 비교할때 사용한다.$_SESSION['prev_point'] = $point;$_SESSION['prev_rank'] = $rank;?>
에공 오타가 있었구나;;
답변에 대한 댓글 1개
2015-05-16 (토) 13:16:16
답변을 작성하려면 로그인이 필요합니다.
너무너무~ 감사합니다
복받으실꺼에요~