묻고답하기

php로 게시판을 만들고 있습니다.

 

bbs_list.php에 한 페이지 당 표시될 게시물 갯수($perpage)를 10으로 잡았습니다.

bbs_function.php는 목록 뿌리기, 페이지 계산 등을 담당하는 파일입니다.

 

그런데 게시판의 게시물이 10개만 되면 맨 첫번째 글만 출력됩니다.

예를 들어 아래와 같이 목록에 나옵니다.

해당 게시판의 데이터베이스입니다. 총 10개입니다.

 

 

 

그런데 글 한개만 더 써서 11개를 만들면 정상적으로 출력됩니다.

아래와 같이 출력됩니다.

 

 

 

 

 

 

11개일경우 해당 게시판 데이터베이스입니다.

 

 

 

bbs_list.php 소스입니다.

<?
/*--------------------------
 filename : list.php3
--------------------------*/
require "bbs_function.php";

$perpage = "10";  // 한페이지당 10개 뿌리기

if ($page == "") {
  $page = 1;
}

$tlpn = get_pagenum();

$result = arti_list($tlpn, $perpage);

echo ("
// 맨 윗줄의 번호, 제목 등을 표시하는 부분 (편의상 생략)
");

$i = 0;
while($list = mysql_fetch_array($result)) {

  echo "
echo ("
// 게시물 번호, 제목, 작성자 등을 반복적으로 출력하는 부분 (편의상 생략)
";
}

echo "<br><center><font size=\"1\">"; movepage ($page, 2); echo "</font></center>";
?>

 

 

bbs_function.php 소스입니다.

<?
/*--------------------------
 filename : function.php3
--------------------------*/
function arti_list($tlpn, $perpage) {
 include "account.php";

  global $board, $page; // 수정

  $result = lpp($tlpn, $perpage, $page); // 추가

return $result;
}

function get_pagenum() {
  global $board, $perpage;

 include "account.php";

  $result = mysql_query("SELECT COUNT(*) FROM $board",$dbconn);
  $tlpn[num] = mysql_result($result, 0, "COUNT(*)");

  if($tlpn[num] % $perpage) {
    $tlpn[page]= intval($tlpn[num] / $perpage) + 1;
  }
  else {
    $tlpn[page]= $tlpn[num] / $perpage;
  }

  return $tlpn;
}

function lpp($tlpn, $perpage, $page) {
  global $board;

 include "account.php";

  if(($tlpn[page] > $page) && ($page > 1)) {
    $lastpagelist = $tlpn[num] - (($page - 1) * $perpage);
 
    $result = mysql_query("SELECT * FROM $board WHERE
      idx <= $lastpagelist
      ORDER BY idx DESC LIMIT $perpage", $dbconn);
  }
 
  elseif ($tlpn[page] == $page) { // 맨 마지막 페이지라면..
    if ($tlpn[num] % $perpage) {
      $lastpagelist = $tlpn[num] % $perpage;
    }
    else {
      $lastpagelist = $page;
    }
 
    $result = mysql_query("SELECT * FROM $board
      WHERE idx <= $lastpagelist
      ORDER BY idx DESC", $dbconn);
  }
 
  elseif ($page == "1") { // 첫 페이지라면..
    $result = mysql_query("SELECT * FROM $board
    ORDER BY idx DESC LIMIT $perpage", $dbconn);
  }
 
  else {
    echo "잘못된 페이지";
    exit;
  }
  return $result;
 
}

function movepage($page, $numpage) {
  global $board, $tlpn;
 
  if ($page == 1) { // 맨 처음 페이지
 echo "<b>[Top]</b> ";
  }
  else {
    echo "<a href=\"bbs_list.php?board=$board&page=1\">[Top]</a> ";
  } // 맨 처음 페이지 끝
   
  $topnear = $page - $numpage;
  $lastnear = $page + $numpage;
 
  if ($topnear <= 1) {
    $pres = 1;
    if ($tlpn[page] <= ($numpage * 2 + 1)) {
      $nexs = $tlpn[page];
    }
    else {
      $nexs = $numpage * 2 + 1;
    }
  }
  elseif (($page == $tlpn[page]) && ($tlpn[page] <= ($numpage * 2))) {
    $pres = 1;
    $nexs = $tlpn[page];
  }
  elseif ($lastnear >= $tlpn[page]) {
    $pres = $tlpn[page] - ($numpage * 2);
    $nexs = $tlpn[page];
  }
  else {
    $pres = $topnear;
    $nexs = $lastnear;
  }
 
  // 이동할 페이지의 가장 처음이 1 페이지보다 클 경우 생략 기호 출력
  if ($pres > 1) {
    echo "<b> ... </b>";
  } 
 
  for($i=$pres; $i <= $nexs; $i++) { // 중간
    if ($i == $page) {
      echo "<b>[$i]</b> ";
    }
    else {
      echo "<a href=\"bbs_list.php?board=$board&page=$i\">[$i]</a> ";
    }
  } // 중간

  // 이동할 페이지의 가장 끝이 마지막 페이지보다 작을 경우 생략 기호 출력
  if ($nexs < $tlpn[page]) {
    echo "<b> ... </b>";
  } 
  
  if ($page == $tlpn[page]) { // 맨 끝 페이지
    echo "<b>[Last]</b> ";
  }
  else {
    echo "
  <a href=\"bbs_list.php?board=$board&page=$tlpn[page]\">[Last]</a> ";
  } // 맨 끝 페이지 완료
}
?>

 

 

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
아키테스 php 게시판에서 참 희안한 오류가 발생됩니다!  
boring 제로보드 스킨을 xe에 사용할수있나요??? [2] 2010.05.28 by NineTail
CDengS 2차메뉴 ccs관련 자료 없나요? ㅠㅠ;; [1] 2010.05.28 by 날개249
이태배기 로그인이 안되요  
지지리궁상님 제로보드 DQ 포토갤러리 오류인데요????  
달빛미르히 여백문제요.. file  
동길아 목록아래 또 목록 만들수 없나요?  
Wolfen Player! 게시판 스킨 변경이 안 됩나다 [1] 2010.05.28 by 기멍태
기멍태 get으로 값 넘기는 것에 대해 여쭤봅니다.  
우진♡아빠 xe글등록시 다음 블로그에도 같이 올릴려면..?  
둑밥 코어 업그레이드 순서  
쿠니쿠니 로그인시 자동으로 메일보내기  
yegam 메인에 공지사항 제목만 추출하기  
다크서클30년 여러분들이 도와주신 덕분에..  
야간알바 제로보드 첫화면 이미지 가로 나오기 [1] 2010.05.28 by mindpainter
한살 서브메뉴를 삭제하고싶습니다. [1] 2010.05.28 by 토니박스
현준맘 게시판 EX를 사용 중인데요... 테이블을 만든후 bgcolor가 안먹네요...어떻게 하지요.  
boring xe로 쓰고있는데 sir 스킨적용 할수 있나요?? [2] 2010.05.28 by 리사땅
SunyYun 설문조사 중복참여 IP중복제한해제 하는 방법 ?  
이드레이 RSS 에서 첨부파일을 나타내려면은 어떻게 하는건지 ㅠ  
{열매} 게시판에서 관리자 메일 설정 후 글 작성하면 오류 발생 file  
58RUN 신디가 작동을 하지 않는듯 합니다. [1] 2010.05.28 by 팅팅이
*^열쉬미^* 위젯 콘텐츠 위젯 스킨 - 나라디자인(naradesign)스킨 질문입니다. [2] file 2010.05.28 by *^열쉬미^*
gini XE 메일관련>윈도우 라이브메일  
알칸페 1.4.2.2 ftp계정정보입력에서 ftp경로설정 [1] 2010.05.28 by CDengS
이민주268 위젯 쉬운설치 msg_ftp_upload_failed 오류에 대해서 질문. [1] 2010.05.27 by jsm4u
불패의초인 파스텔보드 웹진 모드에서 이미지 께지는 문제 왜그러죠?  
괴적인격 전체메일 기능은 아직 없는거죠?? [1] 2010.05.27 by 박노열
먕쓰11 이메일 주소 백업 방법이 있나요? [1] 2010.05.27 by 박노열
명드래곤 Cafe24 에서 firebug + firephp 사용시 Temporarily Unavailable 에러 file