최근게시물이 아닌 순위게시물 뽑기를 해보자... > Web Development

본문 바로가기
  • kb@lovelet.com
사이트 내 전체검색

RESOURCES Web Development

최근게시물이 아닌 순위게시물 뽑기를 해보자...

페이지 정보

본문

최근게시물 뽑기에 성공하셨고,
어느정도 최근게시물 뽑기에 관해 알고 계신분을 위주로 설명드리겠습니다.


최근게시물은 게시물번호가 큰 순서대로 정렬해서
지정한 갯수만큼 출력해주는 것을 말하잖아요.. (맞나?)
그런데 이번에 제가 올릴 Tip은 최근게시물이 아닌
조회수에 따른 인기게시물 순서대로 뽑는 순위게시물 뽑기입니다.
조회수 크기에 따른 게시물 뽑기는 이미 몇몇 분께서 올려주셔서
검색해보시면 찾아내실 수가 있는데요.. 전 여기에 좀더 추가해 보겠습니다.


우선 아래는 최근게시물 뽑기에서 흔히 쓰는 방법입니다..
mysql_query("select * from zetyx_board_게시판이름 order by no DESC limit 뽑을갯수");


여기에서 no 대신에 hit 로 바꿉니다.
즉, mysql_query("select * from zetyx_board_게시판이름 order by hit DESC limit 뽑을갯수"); 요렇게요..
그러면 조회수에 따른 게시물뽑기가 됩니다.
여기까진 아시는 분들 많으실 겁니다.
그런데 지정한 게시판에 공지사항과 같은 순위에서 뺐으면 하는 게시물이 있기 마련이죠..
공지사항은 굳이 순위로 따질 필요도 없을 뿐더러 공지라서 조회수가 많아 항상 첫번째로 뽑히기 일쑤입니다.


이럴땐 다음과 같이 해주면 됩니다.
mysql_query("select * from zetyx_board_$id where no!=제외하고픈게시물번호 order by hit desc limit 뽑을갯수");


두번째로 순위게시물 뽑기이기 때문에 뽑은 게시물 앞에 번호를 붙여주면 좋겠죠?
보통 간단히 다음과 같은 소스에서...
<?
mysql_connect("localhost","디비 아이디","디비 패스워드");
mysql_select_db("디비 네임.");


$result=mysql_query("select * from zetyx_board_게시판이름 order by hit desc limit 뽑을갯수");
echo "

$data[subject] = stripslashes($data[subject]);
$max = 23; // 글자 수를 제한하는 부분입니다.
$count = strlen($data[subject]);
if($count >= $max) {
for ($pos=$max;$pos>0 && ord($new[subject][$pos-1])>=127;$pos--);
if (($max-$pos)%2 == 0)
$data[subject] = substr($data[subject], 0, $max) . "...";
else
$data[subject] = substr($data[subject], 0, $max+1) . "...";
}
else {
$data[subject] = "$data[subject]";
}


echo "

".stripslashes($data[subject])."";
echo "";
}
echo "";
mysql_close();
?>

while문 위에 변수하나를 정해서 1을 치환시켜주시고요,
while문 끝에 이 변수의 값을 하나 증가시켜주는 것입니다.
그리고 게시물 앞에 표시해주면 됩니다.
예를들어 다음과 같이 바꿔주시면 되겠죠...


<?
mysql_connect("localhost","디비 아이디","디비 패스워드");
mysql_select_db("디비 네임.");


$result=mysql_query("select * from zetyx_board_게시판이름 order by hit desc limit 뽑을갯수");
echo "

$aa=1; // <------------------------------------------- 변수하나를 정해서 1을 치환했습니다.


while($data=mysql_fetch_array($result))
{


$data[subject] = stripslashes($data[subject]);
$max = 23; // 글자 수를 제한하는 부분입니다.
$count = strlen($data[subject]);
if($count >= $max) {
for ($pos=$max;$pos>0 && ord($new[subject][$pos-1])>=127;$pos--);
if (($max-$pos)%2 == 0)
$data[subject] = substr($data[subject], 0, $max) . "...";
else
$data[subject] = substr($data[subject], 0, $max+1) . "...";
}
else {
$data[subject] = "$data[subject]";
}


echo "


$aa // <------------------------------------------ 게시물 앞에 출력합니다. 1부터 순서대로 게시물앞에 붙겠죠?
".stripslashes($data[subject])."";
echo "";
$aa++; // <------------------------------------------ while문이 끝나기전에 이 변수의 값을 하나 증가시킵니다.
}
echo "";
mysql_close();
?>

허접하지만 다음과 같은 세가지 팁을 과감히 적어봤습니다.
잘 응용하셔서 더욱 멋진 홈피 완성하시길...


1. 조회수순으로 게시물 뽑기
2. 제외하고픈 게시물 제외시켜서 뽑기
3. 순위를 매기기 위한 게시물 앞에 번호 붙이기


Share Post:

댓글목록

등록된 댓글이 없습니다.

Sign In
OR
Don't have an account? SIGN UP

Keywords

Visits

접속자

Total Visits
1,888,942