채택완료

포인트 순위가 같을때 공동으로 순위표시좀 알려주세요

2015-05-15 (금) 17:38:37 3,647

포인트 순위를 만들고 있는 중입니다

순위가 공동일때 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?>&nbsp;점</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?>&nbsp;점</th>  </tr> <? $prev_point = $point; // 이번회차 포인트는 저장해둠 $prev_rank = $rank; // 이번회차 랭크는 저장해둠}// 세션에 저장해 두었다가, 다음 페이지에서 처음 비교할때 사용한다.$_SESSION['prev_point'] = $point;$_SESSION['prev_rank'] = $rank;?>​
 

에공 오타가 있었구나;;

답변에 대한 댓글 1개

해결되었습니다

너무너무~ 감사합니다

복받으실꺼에요~

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