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

쿼리 질문좀 드립니다

· 11년 전 · 2981 · 6
회원 레벨 시스템을 도입해서
member 테이블에서 mb_10 필드에 회원 레벨의 경험치를 저장하고 있습니다.
경험치이니 단위가 1부터~몇만까지 입니다.
이것을 경험치가 높은 순서대로 순위를 10명 출력하려고합니다.

<? $sql = "SELECT mb_10, mb_id, mb_nick FROM {$g4['member_table']} where mb_id <> 'admin' order by mb_10 desc LIMIT 0,10";
$result = sql_query($sql);
?>

<?
for ($i=1; $row=sql_fetch_array($result); $i++) {

if ($i<= 3) $cla=' class="best"';
else $cla="";

?>

이렇게 주었습니다. 위소스는 포인트순위 소스를 응용했습니다.
그런데 9를 제일높은 숫자로 인식하는지 무조건 9가 많이들어간 경험치가 순위에 높게 나타납니다.

99 경험치
972 경험치 가 있으면
99를 더높은 경험치로 인식하고 순위 1등에 출력됩니다.
무엇이 문제일까요 ㅜㅜ

댓글 작성

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

로그인하기

댓글 6개

11년 전
for ($i=1; $row=sql_fetch_array($result); $i++) 에서 $i 가 0 부터 시작해야 하지 않나요?
0부터했는데 현재 11레벨이 1등이여야되거든요
근데 9레벨이 1등이구 11레벨은 아에 10순위에 없습니당 ㅜㅜ
물론 11레벨의 경험치가 더높은데요 ㅜㅜ
// 한번만 넣어서 호출 후 주석 또는 삭제 -- mb_10 은 varchar 형으로 INT형으로 바꿔줘야합니다.
sql_query(" ALTER TABLE {$g4['member_table']} CHANGE `mb_10` `mb_10` INT( 11 ) NOT NULL ");
// --

$sql = "SELECT mb_10, mb_id, mb_nick FROM {$g4['member_table']} where mb_id <> 'admin' order by mb_10 desc LIMIT 0,10";
$result = sql_query($sql);
답변감사합니다 int형으로 바꾸어주었는데요 길이/값이 11이거나 255거나 아무거나 해주어도 상관이없나요 ?
다른점이있나요?
11년 전
LIMIT 0,10 에서 10을 더 높은 값으로 줘야 하지 않을까요?
10은 순위를 뽑는 단위에요 ~

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440