웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
안녕하세요^^
아래소스는 제가 30분동안 전전긍긍 끝에 만들었습니다.
포인트 랭킹 먹이는 부분에서 저의 정보처리능력이 약간 발휘되었을뿐--;
그리 어려운 코딩은 아니라고봅니다.
자세한 설명도 써놓았으므로 사용많이 해주세요^^
http://angelworld.dnip.net <-놀러오세요.
http://angelworld.dnip.net/point.php <-포인트랭킹 미리보기..................
<?
//인원체크
$num=0;
//DB접속
$connect=mysql_connect('localhost','root','11311');
mysql_select_db('bbs');
//테이블의 id와 포인트를 쿼리로 얻는다.
$qry=mysql_query('select user_id,point1 from zetyx_member_table');
while ($data=mysql_fetch_array($qry))
{
$num++; //인원증가
//배열에 아이디넣기
$id[$num]=$data[user_id];
//배열에 포인트점수넣기
$point[$num]=$data[point1];
}
// 여기까지 id와 point배열에 각각 사용자의 아이디와포인트를 기록하였다.
//포인트점수를 비교하여, 순서대로 배열하는 정보처리알고리즘(--;조금힘들었음)
for ($i=1;$i<$num;$i++)
{
for ($a=$i+1;$a<=$num;$a=$a+1)
{
if ($point[$i] < $point[$a])
{
//아이디순서를 재정렬
$temp=$id[$i];
$id[$i]=$id[$a];
$id[$a]=$temp;
//포인트순서를 재정렬
$temp=$point[$i];
$point[$i]=$point[$a];
$point[$a]=$temp;
}
}
}
//출력 디자인모드 디자인을 바꾸시고 싶으시면 바꿔서 하시면 멋찌겠죠?-=-;
echo "
<table border='1' width='206' cellspacing='0' bordercolordark='white' bordercolorlight='#6699FF'>
<tr>
<td width='67'> <p align='center'><b><font size='2'>Rank</font></b></p>
</td>
<td width='66'>
<p align='center'><b><font size='2'>ID</font></b></p>
</td>
<td width='51'>
<p align='center'><b><font size='2'>Point</font></b></p>
</td>
</tr>";
//출력갯수
for ($i=1;$i<5;$i++) {
echo "
<tr>
<td> <p align='center'><b><font size='2'>$i</font> </td>
<td> <p align='center'><b><font size='2'>$id[$i]</font></td>
<td> <p align='center'><b><font size='2'>$point[$i]</font></td>
</tr>";
}
echo"
</table>";
echo "<font size='2'>Made By http://angelworld.dnip.net</font>";
//DB종료
mysql_close($connect);
?>
여기까지입니다.
팁) 관리자의 랭킹을 빼고싶을때. (위에보면....)
for ($i=2;$i<$num;$i++) {
$a++; <-추가해준다.
echo "
<tr>
<td> <p align='center'><b><font size='2'>$a</font> </td> <-고친곳
<td> <p align='center'><b><font size='2'>$id[$i]</font></td> <-고친곳
<td> <p align='center'><b><font size='2'>$point[$i]</font></td> <-고친곳
</tr>";
}
위에 있는 소스부분중 위에처럼 이렇게 고치면 됩니다.
저 위에 순위는 랭킹 4위까지 되지만 랭킹 리스트 순위를 더 늘리시려면,
for ($i=2;$i<5;$i++) 이부분에서 5라는부분을 늘리시면 됩니다^^ 쉽죠?
이소스는 100% 제가 만든소스로써 다음에는 더 멋찐 소스로 여러분께 드리겠습니다^^
그럼 질문을 해주실려면 해주세요~ 그럼 이만...............
중요) $connect=mysql_connect('localhost','root','11311'); 이부분에서 아이디와 비밀번호넣어주세요.
mysql_select_db('+ 'bbs'); -> 제로보드 db이름을 넣어주세요.
★ 출력이자인모드 부분에 테이블출력 형식을 멋찌게 바꿔서 하시면 멋찌겠죠...
제로보드회원의 포인트 랭킹 체크하기
2003.11.15 13:30
안녕하세요^^
아래소스는 제가 30분동안 전전긍긍 끝에 만들었습니다.
포인트 랭킹 먹이는 부분에서 저의 정보처리능력이 약간 발휘되었을뿐--;
그리 어려운 코딩은 아니라고봅니다.
자세한 설명도 써놓았으므로 사용많이 해주세요^^
http://angelworld.dnip.net <-놀러오세요.
http://angelworld.dnip.net/point.php <-포인트랭킹 미리보기..................
<?
//인원체크
$num=0;
//DB접속
$connect=mysql_connect('localhost','root','11311');
mysql_select_db('bbs');
//테이블의 id와 포인트를 쿼리로 얻는다.
$qry=mysql_query('select user_id,point1 from zetyx_member_table');
while ($data=mysql_fetch_array($qry))
{
$num++; //인원증가
//배열에 아이디넣기
$id[$num]=$data[user_id];
//배열에 포인트점수넣기
$point[$num]=$data[point1];
}
// 여기까지 id와 point배열에 각각 사용자의 아이디와포인트를 기록하였다.
//포인트점수를 비교하여, 순서대로 배열하는 정보처리알고리즘(--;조금힘들었음)
for ($i=1;$i<$num;$i++)
{
for ($a=$i+1;$a<=$num;$a=$a+1)
{
if ($point[$i] < $point[$a])
{
//아이디순서를 재정렬
$temp=$id[$i];
$id[$i]=$id[$a];
$id[$a]=$temp;
//포인트순서를 재정렬
$temp=$point[$i];
$point[$i]=$point[$a];
$point[$a]=$temp;
}
}
}
//출력 디자인모드 디자인을 바꾸시고 싶으시면 바꿔서 하시면 멋찌겠죠?-=-;
echo "
<table border='1' width='206' cellspacing='0' bordercolordark='white' bordercolorlight='#6699FF'>
<tr>
<td width='67'> <p align='center'><b><font size='2'>Rank</font></b></p>
</td>
<td width='66'>
<p align='center'><b><font size='2'>ID</font></b></p>
</td>
<td width='51'>
<p align='center'><b><font size='2'>Point</font></b></p>
</td>
</tr>";
//출력갯수
for ($i=1;$i<5;$i++) {
echo "
<tr>
<td> <p align='center'><b><font size='2'>$i</font> </td>
<td> <p align='center'><b><font size='2'>$id[$i]</font></td>
<td> <p align='center'><b><font size='2'>$point[$i]</font></td>
</tr>";
}
echo"
</table>";
echo "<font size='2'>Made By http://angelworld.dnip.net</font>";
//DB종료
mysql_close($connect);
?>
여기까지입니다.
팁) 관리자의 랭킹을 빼고싶을때. (위에보면....)
for ($i=2;$i<$num;$i++) {
$a++; <-추가해준다.
echo "
<tr>
<td> <p align='center'><b><font size='2'>$a</font> </td> <-고친곳
<td> <p align='center'><b><font size='2'>$id[$i]</font></td> <-고친곳
<td> <p align='center'><b><font size='2'>$point[$i]</font></td> <-고친곳
</tr>";
}
위에 있는 소스부분중 위에처럼 이렇게 고치면 됩니다.
저 위에 순위는 랭킹 4위까지 되지만 랭킹 리스트 순위를 더 늘리시려면,
for ($i=2;$i<5;$i++) 이부분에서 5라는부분을 늘리시면 됩니다^^ 쉽죠?
이소스는 100% 제가 만든소스로써 다음에는 더 멋찐 소스로 여러분께 드리겠습니다^^
그럼 질문을 해주실려면 해주세요~ 그럼 이만...............
중요) $connect=mysql_connect('localhost','root','11311'); 이부분에서 아이디와 비밀번호넣어주세요.
mysql_select_db('+ 'bbs'); -> 제로보드 db이름을 넣어주세요.
★ 출력이자인모드 부분에 테이블출력 형식을 멋찌게 바꿔서 하시면 멋찌겠죠...
댓글 13
-
Willem
2003.11.15 15:36
-
Willem
2003.11.15 15:37
PS> 지금 제가 올린건 ★모든 회원을 표시★ 하게 되어있는데;;
$i=0;
while ($data=mysql_fetch_array($qry)) {
$i++;
부분을
for($i=0; $i<몇명이나보여줄까; $i++) {
로 바꿔주시면 (물론 `몇명이나보여줄까`는 5 나 100 처럼 숫자를 써줘야겠죠)
그만큼만 표시됩니다아- -
전원주
2003.11.15 17:22
--;; Willem 님... 제가 차마 mysql쿼리문에서 올림차순정렬을 생각못했네요--;
그것을 쓴다면, 따로 정렬 알고리즘을 힘들게 생각안해도 될텐데 ㅠㅠ....
으흠... 코드를 쪼금 복잡하게 만들었군요 제가..........^^~; 오호~! -
오우
2003.11.15 20:14
근데 왜 굳이 배열에 넣고 포구문으로 출력하지요?
그냥 와일로 돌리면서 출력하면 좋을 것을!? -
weky
2003.11.15 20:24
전원주 //
왜이렇게 복잡하게 하시는지 ^^;;
php 에서
//참고로. 전. 제로보드를 사용안하지만. 관리 효율을 위해..
include "lib.php";
$connect = dbconn();
$result = @mysql_query('select user_id,point1 from zetyx_member_table order by desc point1') or die(mysql_error());
while ($data = mysql_fetch_array($result)){
echo $data[point1]."<br>";
}
$connect = mysql_close();
unset($connect);
하시면 될텐데 ^^;; -
weky
2003.11.15 20:24
몇개만 뽑고 싶으시다면.
쿼리문 뒤에. limit 0, 갯수
써주시면;;; -
세죠위그이
2003.11.15 20:43
오우 // for 문으로 돌리면 원하는 값만 빼올 수 있습니다.
while문을 사용하면 조건에 만족하는 모든 값을 뽑아옵니다.
.
.
.
아닌가요? (퍼엉) -
TheMics
2003.11.15 20:48
order에 limit만 정해줘도 훨씬 간결해질; -
전원주
2003.11.16 03:12
복잡한게 있다면, 올림차순으로 포인트를 정렬해주는 알고리즘이 복잡할뿐이죠... -
Willem
2003.11.16 12:28
전원주// 그런데 그 알고리즘은 어떻게 만드셨는지 참 궁금하네요~ ㅋ;;;
어쨌든 수고하셨습니다^^ -
전원주
2003.11.16 12:49
ㅋㅋ... 힘들긴했죠--; -
TheMics
2003.11.16 14:25
오름차순 알고리즘...sort()하나면 끝날것을 이중포문까지 쓰시다니;;
http://kr.php.net/manual/kr/function.sort.php
sort 함수 사용 후 역순으로 표시해주면 되겠죠. -
오우
2003.11.22 02:27
제목 | 글쓴이 | 날짜 |
---|---|---|
일정시간 이 지난 게시물 정리하기.. [3] | 명동욱 | 2003.12.24 |
[MySQL] Set 형 자료형.. [3] | 서영태 | 2003.12.24 |
나도 @ 도메인 서비스를 해보자 [29] | 김병철 | 2003.12.19 |
[제로카운터] 자동으로 DB를 지우자. (IP와 referer 5일 분량만 남기기) [4] | 이주경 | 2003.12.17 |
카일레라 서버 페이지 만들기. [2] | teslaMINT | 2003.12.09 |
편법을 이용한 inlive 방송여부 체크 [7] | 심심타 | 2003.12.09 |
DB에서 받은 데이터 배열로 하나씩 뿌리기 | LetMeLove | 2003.12.09 |
세션을 이용한 관리자 모드 구축하기 3강 [6] | 박정호 | 2003.12.09 |
세션을 이용한 관리자 모드 구축하기 2강 [6] | 박정호 | 2003.12.09 |
세션을 이용한 관리자 모드 구축하기 1강(중복?) | 박정호 | 2003.12.09 |
쉘 명령어 사용하기 [11] | 9000㎒ | 2003.12.02 |
랜덤 배경음악 만들기. [6] | 폭주나루 | 2003.12.01 |
throttle-me를 이용한 계정 트래픽 나타내기 [39] | 旻天 | 2003.11.27 |
제로보드회원의 포인트 랭킹 체크하기 sql 정리 [4] | 한꼬마 | 2003.11.26 |
한꼬마의 제로보드 이용법 (sql로 테이블 호출) [2] | 한꼬마 | 2003.11.26 |
[Lotto 6/45] 로또 추첨 구현하기~ [5] | 전원주 | 2003.11.21 |
한꼬마의 제로보드 활용방법 (로그인 값 알아 보기) [3] | 한꼬마 | 2003.11.20 |
회원 포인트 랭킹(중복 -_-a) [4] | weky | 2003.11.15 |
제로보드회원의 포인트 랭킹 체크하기 [13] | 전원주 | 2003.11.15 |
지금은 시스템 점검중 만들기... [8] | zentoo.com | 2003.11.11 |
<?
//DB접속
$connect=mysql_connect('localhost','아이디','비밀번호');
mysql_select_db('아이디');
//테이블의 id와 포인트를 쿼리로 얻는다.
$qry=mysql_query('select * from zetyx_member_table order by point desc'); //여기가 바뀌었어요; `order by 필드이름 정렬순서` 입니다; desc: 많은게 먼저! asc: 당연히 적은게 먼저!
echo "
<table border='1' width='206' cellspacing='0' bordercolordark='white' bordercolorlight='#6699FF'>
<tr>
<td width='67'> <p align='center'+ '><b><font size='2'>Rank</font></b></p>
</td>
<td width='66'>
<p align='center'><b><font size='2'>ID</font></b></p>
</td>
<td width='51'>
<p align='center'><b><font size='2'>Point</font></b></p>
</td>
</tr>";
$i=0;
while ($data=mysql_fetch_array($qry)) {
$i++;
echo "
<tr>
<td> <p align='center'><b><font size='2'>$i</font> </td>
<td> <p align='center'><b><font size='2'>$data[user_id]</font></td>
<td> <p align='+ 'center'><b><font size='2'>".($data[point1]*10+$data[point2])."</font></td>
</tr>";
}
echo"
</table>";
echo "<font size='2'>Made By http://angelworld.dnip.net</font>";
//DB종료
mysql_close($connect);
?>