쿼리 질문좀 드립니다 정보
쿼리 질문좀 드립니다본문
회원 레벨 시스템을 도입해서
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등에 출력됩니다.
무엇이 문제일까요 ㅜㅜ
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등에 출력됩니다.
무엇이 문제일까요 ㅜㅜ
댓글 전체
for ($i=1; $row=sql_fetch_array($result); $i++) 에서 $i 가 0 부터 시작해야 하지 않나요?
0부터했는데 현재 11레벨이 1등이여야되거든요
근데 9레벨이 1등이구 11레벨은 아에 10순위에 없습니당 ㅜㅜ
물론 11레벨의 경험치가 더높은데요 ㅜㅜ
근데 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);
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거나 아무거나 해주어도 상관이없나요 ?
다른점이있나요?
다른점이있나요?
LIMIT 0,10 에서 10을 더 높은 값으로 줘야 하지 않을까요?
10은 순위를 뽑는 단위에요 ~